0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

いなたつAdvent Calendar 2019

Day 5

htmlをReactコンポーネントにぶちこんでやるぜ〜〜!!

Last updated at Posted at 2019-12-05

はじめに

いなたつアドカレの五日目の記事です。

今回はReactで生のhtmlを扱うための方法とその時の注意について少し、、、

ざっくりいうと

  • dangerouslySetInnerHTMLを使おう
  • XSS に気をつけよう
  • markdownから変換して表示も可能だよ

dangerouslySetInnerHTMLを使う

<span dangerouslySetInnerHTML={{ __html: html}} />

dangerouslySetInnerHTML属性に__html(あんだーばーあんだーばーへいちてぃーえむえる)に展開したいhtmlを設定する オブジェクト を渡すことで指定したhtmlをタグ内部に展開することができます。

dangerouslyやねん

XSSの危険がつきまとってくるんですよね。

XSSってのはクロスサイトスクリプティングといって、テキストボックスにhtmlを埋め込み、予期せぬ動作をさせようとすることです。

これの何がdangerouslyかというと

  • テキストボックスにスクリプトを入力し、javascriptを実行させることで、クッキーなどを盗みなりすましができる
  • 同様に、アプリケーションの機能を悪用されるかもしれない
    クッキーでセッションIDなんかを保持しているとなりすましの温床になりかねないですね。。。。
    dangerouslyって名前についてるのはこういうところからなので、まあ、あまり使わない方がいいですね。

じゃあどーやって対策すんの

** サニタイズ **

markdownがうんぬんかんぬん

markdownを生のhtmlに変換してここにぶちこんでやるぜーしたらmarkdownエディタのプレビューっぽいことできるって話
次回reactとmarkedのお話を書きます。。。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?