1

二重 (またはそれ以上) のエンコードまたはデコードに対して回復力があり、XSS および SQL インジェクション攻撃に対しても安全なエンコード方式はありますか? 説明する:

enc(A) --> A'
enc(A') --> A'

その後:

dec(A') --> A
dec(A) --> A

これが役立つのは、コントローラーに送信される前にコンテンツをエンコードするように指定する MVC フレームワークです。ただし、UI は複数のレイヤーであり、(誤って) サブビューとその親の両方で二重にエンコードされる場合があります。

4

2 に答える 2

1

エンコーディングは、適切に開発されたアプリケーションのセキュリティに影響を与えるべきではありません。使用時には、データは常に安全にする必要があります。セキュリティでエンコーディングが問題になるのは、エスケープ ルーチンが実行され、次にデコーディング (またはおそらくエンコーディング) ルーチンが実行され、機密性の高い関数がこのデータで呼び出される場合のみです。この場合、デコード ルーチンは常にエスケープ ルーチンを弱体化させます。

たとえば、次は常に安全ではありません。

mysql_query("select * from user where id ='"+urldecode(addslashes($_GET[id]))+"'")

この場合、パラメータ化により、変数のエンコード方法に関係なく、結果の文字列が期待どおりになることが保証されます。使用する直前に常にエスケープする場合、エンコーディングは問題になりません。

于 2013-07-25T07:03:06.777 に答える