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 3 years have passed since last update.

備忘録~XSS対策~

Posted at

##XSS(クロスサイトスクリプティング)攻撃のセキュリティリスク

###これは超々基本的なセキュリティ対策。

ユーザーが入力フォーム(SNSの投稿欄など)にコードを記入することで、そのコードが実行されてしまい、Cookieが攻撃者に取得され、不正ログインなどにつながる!

###対策

特殊文字(<,>など)をエスケープする。
エスケープとは、文字参照に置き換えるという意味。
例えば、"<"と単純な文字として認識させる。

###方法
#####htmlspecialchars($string, $flags, $encoding)を用いる!

$string:変換する文字列
$flags:処理の仕方を指定するフラグ
例)ENT_QUOTESなら、シングルクォーテーションかダブルクォーテーションに囲まれている文字列を指定する。
$encoding:文字を変換するときに使用するエンコーディング

htmlspecialchars('<script>...</script>',ENT_QUOTES,'UTF-8')

'<script>...</script>'が文字列になる。

下のように関数化してしまえば楽。

function escape($string)
{return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');}

echo escape($review);

####・おまけ
nl2br()について

nl2br(escape($review['summary'])); 

フォーム入力で改行された部分のHTMLに自動的にを差し込む。
テキストに入力された通りに改行したものを表示できる。

escape(nl2br($review['summary']));
escapeを先に書いてしまうと改行タグも文字列として表示してしまうので注意!

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?