ユーザーがテキストボックスに入力して[送信]をクリックすると、後で表示できるように保存されるように、自分のサイトに「お問い合わせ」を設定したいと思います。
ここに注射の危険はありますか?
ユーザーがテキストボックスに入力して[送信]をクリックすると、後で表示できるように保存されるように、自分のサイトに「お問い合わせ」を設定したいと思います。
ここに注射の危険はありますか?
おそらくそうですが、テキストをどこに保存するかによって異なります。
SQLデータベースにある場合、たとえばSQLインジェクションのリスクがあります。環境のSQLエスケープ関数を使用する必要があります。
たとえば、php+mysqlでは。を使用できますmysql_real_escape_string
。ほとんどの技術環境は、永続化する前に文字列を適切にエスケープするための標準的な方法を提供します。
注射は2か所で起こる可能性があります。
したがって、SQLサーバーに保存する場合は、変数/パラメーター*を使用して保存し、xmlに保存する場合は、HtmlEncodeを使用して保存します。
そのデータを表示するときに、htmlページで表示する場合は、 HtmlEncodeを使用します。テキストファイルで読み取るだけの場合は、心配する必要はありません:)
[*]方法:ASP.NETでのSQLインジェクションからの保護
htmlエンコードおよびアンチクロスサイトスクリプティングライブラリの詳細:
セキュリティの観点から、私たちのWebフォームは裸であり、100%脆弱です。データがそれらに渡されるすべての方法を調べて、必要に応じてテストする必要があります。
* Form Fields
* URL Query Strings
* Cookies
* Database
* ViewState
最も一般的な攻撃の形態は、スクリプトインジェクション、クロスサイトスクリプティング、およびSQLインジェクションのようです。SQLインジェクションの場合、これはパラメーター化されたクエリを使用することで軽減できます。これは、データベースクエリをパラメータ化する行為であり、ストアドプロシージャを攻撃に対して非常に回復力のあるものにします。他の形式のスクリプト攻撃は、WebアプリケーションプロジェクトでMicrosoft Anti-Cross SiteScriptingLibraryをダウンロードして使用することで処理できます。