• ベストアンサー

サニタイジングについて

調べることによってある程度は分かるようになったのですが 変数 = サニタイジング関数(入力値) の時に 入力値が test);悪意のあるコード の場合を考えてしまいます 対策法は存在するのでしょうか? お教え願います 詳細  開発言語 php  開発内容? フォーム送信  環境 Linax,Apache HTTP Server

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

何を不安に思っているかよくわかりませんが、"入力値"で与えられる変数は文字列として処理されるので、「test);悪意のあるコード」は文字列として理解された上、サニタイズされて"変数"に代入されます。プログラミングではシンボルとしての文字と文字列としての文字は全く別の意味です。言い換えると、プログラム中にfoo()と"foo()"が出てきた時、前者はfooという関数が実行されますが、後者はfoo()という文字列として扱われます。 その"変数"を使った式でevalやshellの呼び出しなどをやっているところがある場合、悪意のあるコードが実行される可能性がありますが、安全性に気をつけてプログラムを書く場合、evalやshellの呼び出しなどはしないのが常識です。 また、SQLを発行するところで"変数"を使う場合もプレースホルダなどを使い、SQLインジェクションが起きないように注意します。 と、様々な安全なプログラミングのテクニックが存在するので、ここに書いてあることくらいはひと通り読んでおいたほうが良いです。 http://www.ipa.go.jp/security/awareness/vendor/programming/

inosukemar
質問者

お礼

セキュリティ関係のページまで紹介していただきありがとうございます。 これでまた一歩進むことができました。

関連するQ&A