/SQLインジェクション,XSSについてハック2019.08.2098phpSQLインジェクション,XSSについてツイートシェアはてなこんにちは。hacknoteのj.kushiyamaです。今回学習したことの一部としてSQLインジェクションおよびXSSを紹介したいと思います。SQLインジェクションとは?MySQLの仕組みを悪用して意図しないSQL文を実行することをいいます。例パスワード認証user_infoにはユーザーの名前username、パスワードuserpassが入っているとします。ログインフォームから、次のようにしてユーザー名、パスワードが変数に格納されるとします。$_POST["password"];この組を用いて、次のSQL文でログインできるかできないかどうかをチェックします。'$userpass';usernameとしてuser1,userpassとしてuser1が登録されているとします。通常はこの組を入力しますが、悪意のあるユーザは次のような入力を行います。'A$userpassに上のような入力をするとwhere句の条件が常に真となることがわかります。(実際にusernameとuserpassに上の値を代入するとわかります。)where以下の文章は以下のようになります。'A';対策プレースホルダを用いてこのような入力があってもログインを防ぐことができます。password=?のようにパラメータ部分をあらかじめ?のような記号で示しておき、あとから機械的に値を割り当てるというものです。下のログインフォームの例を見るとよく分かると思います。Scriptingの略で、formなどから他人のwebサイトへ悪意のあるスクリプトを埋め込むことをいいます。CSS(htmlで用いられるもの)と区別するためにXSSと表記します。対策phpの場合、htmlspecialchars関数を利用すると良いです。htmlspecialchars関数はhtmlで特別な意味を持つ記号(&,<,>など)そのものの値を取得します。$username."さんが見つかりませんでした。