|
||||||||||
| 1 2 3 次のページ | ||||||||||
| セキュリティについて | ||||||||||
|
Webアプリケーションを開発・公開する際に、セキュリティは避けることのできない重要な課題です。個人情報漏洩が問題視される昨今では、Webアプリケーションの脆弱性によって会社の信用を大きく失うケースもあるのです。 セキュリティに関する話題は多岐に渡りますが、ここではもっとも基本的なセキュリティに関する事柄を解説します。 |
||||||||||
| XSS(クロスサイトスクリプティング) | ||||||||||
|
「XSS(クロスサイトスクリプティング)」とは、第3者が悪意のある任意のスクリプトを混入させることができる脆弱性を指します。 XSS脆弱性の存在するWebページでは、任意のスクリプトを使用することでCookieを盗んでなりすましを行えるのです。 値を出力する時に必ずHTMLタグをエスケープすれば、XSSを防ぐことができます。外部から入力される文字は何を入力されるかわかりません。このため出力する時に必ずエスケープ処理を行うようにしましょう。 PHPの場合は以下のように、「htmlspecialchars();」という関数を使用すればHTMLタグをエスケープできます。
<?php echo htmlspecialchars($foo, ENT_QUOTES); ?>
「htmlspecialchars()」の第1引数に、HTMLタグをエスケープしたい文字列を渡します。第2引数の「ENT_QUOTES」はおまじないのようなものだと考えてください。 |
||||||||||
| SQLインジェクション | ||||||||||
|
SQLインジェクションは悪意のある第3者が、任意のSQLを発行することができる脆弱性です。データベースを使用しているWebアプリケーションの場合、SQLを発行してデータベースへのアクセスを行います。このSQLを生成する時にきちんとエスケープ処理を行わないと、任意のSQLを発行されてしまい、データが盗まれたり、更新や削除が行えてしまうのです。 SQLインジェクションを防ぐには、SQLを生成する時に必ずエスケープ処理を施すようにします。XSSと同様に、外部から入力される文字は何を入力されるかわからないため、すべてをエスケープするように設定しましょう。 使用しているデータベースごとに個別の関数が用意されているので、そちらを使用するようにします。例えばMySQLを使っているなら「mysql_escape_string()」という関数が用意されているのでこれを利用し、以下のように設定します。
<?php
|
||||||||||
|
1 2 3 次のページ |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||

