WebMatrixかみそり(C#)のセキュリティに関する簡単な質問があります
私は(非常に短い期間)SQLインジェクションに対抗するためにフォームを検証するために文字チェックを使用することを検討しましたが、クエリのパラメータ化がこれに対抗するための最良の方法であることに気付いた後、このチェックをコメントアウトしました。 :
foreach(char c in POIName)
{
if(c=='\'' || c=='$' || c=='\"' || c=='&' || c=='%' || c=='@' || c=='-' || c=='<' || c=='>')
{
errorMessage = "You have entered at least one invalid character in the \"POI Name\" field. Invalid characters are: [\'], [\"], [&], [$], [@], [-], [<], [>], and [%]";
}
}
さて、私の質問はこれです:これらのような行は必要ないので(テキストエリアなどで最大限のユーザーの自由を可能にするために)完全に削除する必要がありますか、それともWebMatrixに固有の(またはそれに固有ではない)文字チェックがまだあるべきですか?案件)。
おそらく「@」または「;」を許可しないでください または"<"または">"??
私が理解していることから、クエリをパラメータ化することで(私が持っているように)、有害な文字を自動的にエスケープし、すべてを文字列として再ラップします(またはとにかくそのようなものです、笑)、そして私のデータベースはSQLインジェクション攻撃のいずれに対しても不浸透性であることが証明されましたそれに投げました。
かみそりが何らかの形で影響を受ける可能性があるのか、XSSについて心配する必要があるのかわからないので心配していると思います(私はブログや、htmlタグやあらゆる種類の山形文字を受け入れるべきものではありません)。
この質問がいたるところにある場合は申し訳ありませんが、Stack Overflowが通常提供するような答えの決定的なものを見つけるために他にどこを探すべきかわかりません(たとえば、このコミュニティは、いくつかのGoogle検索よりもはるかに信頼しています。私は投稿する前に試したことを保証します)。
助けてくれてありがとう!