質問: 入力を消すための良い正規表現 私はフォームの入力を消毒するための一般的な正規表現の後に、DBに格納されるファーストネームの姓フィールドに使用したいと思います。 私はASP.netを使用しています
回答: ユーザーデータのサニタイズは出力の問題であり、入力の問題ではありません。 MySQLデータベースの「衛生的」とみなされるものは、必ずしもMSSQLまたはPostGreSQLの「衛生的」であるとは限りません。データベースの「衛生的」とみなされるものは、HTML文書で安全に送信できるものとほとんど同じではありません。 XHTMLは別の話です。ユーザーが提供するデータをjavascriptブロックまたはCSSブロックに出力する場合は、もう一度別です。すべての出力ターゲットに対してユーザーが提供するデータをサニタイズする方法はありません。 独自の正規表現を構築するのではなく、提供されたライブラリ関数を使用してデータをサニタイズする方がよいでしょう。 PHP(私はASP.netよりよく知っている) mysql_real_escape_string () ASP.netは、さまざまなデータベースで使用するためにユーザー提供のデータをサニタイズするためのライブラリ関数を持っていると確信しています。また、HTML用のユーザ提供データをサニタイズするためのライブラリ関数も用意されています。 Parameterised queries are even better than sanitising user-supplied data. And it can be done with ASP.net. This is the right way to use a database.