私はASP.NET MVC C#でSaaSアプリケーションを開発していますが、ストアドプロシージャ/関数を使用するとSQLインジェクションとxsxx攻撃を防ぎたいのではないでしょうか?ユーザーが入力したデータを何らかの形で消去したいと思っていますが、そうするにはどうすればよいか分かりません。ストアドプロシージャを使用するとSQLインジェクション/ XSXX攻撃が防止されますか?
データスクラブを行う必要がある場合、そのアプローチにはどのような方法がありますか?
私はASP.NET MVC C#でSaaSアプリケーションを開発していますが、ストアドプロシージャ/関数を使用するとSQLインジェクションとxsxx攻撃を防ぎたいのではないでしょうか?ユーザーが入力したデータを何らかの形で消去したいと思っていますが、そうするにはどうすればよいか分かりません。ストアドプロシージャを使用するとSQLインジェクション/ XSXX攻撃が防止されますか?
データスクラブを行う必要がある場合、そのアプローチにはどのような方法がありますか?
いいえ。
SqlCommand
を使用してパラメータ化されたクエリを使用し、適切なパラメータを適切な接続に追加する必要があります。これにより、SQLインジェクションが防止されます。ユーザーストリングからsp_executesql
を使用している場合など、すべての手段が保護される保証はありません。
SQLインジェクションとXSS攻撃は別々の問題です。
それは
SQLインジェクションを依存:ダニエルの答えで述べたように(その脆弱として、あなたのストアドプロシージャで動的SQLを避け、SQLインジェクション攻撃を使用して悪用される可能性があり、かつsp_executesql
やむを得ない使用している場合) Better Way
XSS:MVC(ASPXビューエンジンの古いバージョンでは)常にを使用します@Razor Viewの場合、特にHTML.Raw
を使用している場合を除き、@model.something
はデフォルトで常に自動的にエンコードされます(Html.Encode()と同じです)。 Nice Read
フロントサイドスクラブを行う必要はありませんか?私がパラメータと適切なsprocsを使用する限り、私はSQLインジェクションから保護されていますか? – James
はい、それはまったく別の問題であるXSSを解決しません。 –