phpのコマンドインジェクション対策についてですが、htmlspecialchars()やintval()を使っておけば、対策されると思っていいのでしょうか?
そうでないとすると、どのように対策するのがよいのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
webサイトにたいする攻撃については分類があって、対策方法も書かれていますが、ケースバイケースなので絶対これをやっておけば大丈夫というような技はないと思います。
tixure55さんが考えているのはOSコマンドインジェクション対策についてですか?
「コマンドインジェクション」でググってある程度調べましたが、対策にhtmlspecialcharsが活躍する脆弱性ではない気がします。
とりあえずPOSTやGETによる外部からの不正な入力について防ぎたいというのが質問の意図ではないかと思っているのですが、ご提示いただいた関数だけでは防げない脆弱性はたくさんあると思います。
簡単な例ですが、teratailで私が回答した回答の部分に下記のようなリンクで回答編集用のリンクがありました。
https://teratail.com/questions/editreply/[数字]/
ここから[数字]の部分は回答のIDだと推測します。
もしここの数字を変えて別の回答者の回答の編集画面に移って編集できたらまずいですよね?
これは編集をしようとしているユーザーのIDが回答のIDのレコードと結びついているかチェックすることで回避できますが、intval()では当然チェックしようがない攻撃です。
投稿2015/07/03 10:17
総合スコア155
0
そんなに簡単な話であれば誰も苦労はしませんし、脆弱なシステムなど存在するはずがありません。
htmlspecialcharsとintvalが一体何をする関数なのか考えれば、
あなたが考えているコマンドインジェクションの、どの脆弱性に対応できるかはわかるでしょう。
正直を申し上げまして、セキュリティに関する事をそのように簡単に考える方の気持ちが理解できません。
被害を被るのは貴方やクライアントだけではなく、システムを利用した全てのユーザーである事をまず念頭に置いて、一体貴方が何をしたくて何をすべきかを考えるべきではないでしょうか?
投稿2015/07/03 07:34
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
xmlに、targetinstractionタグというのがあって、
そこにphpのコードを指定すれば、
phpが実行されるようです。
ので、xml文書を作成する時は、
htmlspecialchar関数をつかったりして、
エスケープしたほうがいいようです。
それからnullバイトインジェクションというのもあるようです。
あと
http://ftp.stu.edu.tw/Unix/Database/Mysql/doc/refman/5.1-olh/ja/string-syntax.html
ascii26とは、なんのことなのかよくわかりませんが、
そういうのをmysqlにいれると、おかしくなることがあるようです。
cms等、使う際は、バグレポートをよく読んだほうがいいとおもいます。
phpドキュメントも各ページユーザからのコメントが載ってますが、たしか全部英語ですね。
よくみてみると、過去のバグのレポートがあったりします。
投稿2015/07/04 01:26
編集2015/07/04 02:11総合スコア99
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。