0

SQL インジェクションを防ぐために、 OWASPは受信した文字をエンコードします。以下は、org.owasp.esapi.codecs.OracleCodec.java クラスに実装されたコードです。

 //Default implementation that should be overridden in specific codecs. Encodes ' to '' Encodes ' to '' (according to doc)


 public String encodeCharacter( char[] immune, Character c ) {
    if ( c.charValue() == '\'' )
        return "\'\'";
    return ""+c;
}

上記は SQL インジェクションの防止にどのように役立ちますか?説明してください。

4

2 に答える 2

1

ここでは、Oracle およびその他の DBMS について非常によく説明しています: https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet

しかし、ルールn。1 SQL インジェクションを防ぐには、クエリの連結ではなく、準備済みステートメントを使用することです。プリペアド ステートメントを使用すると、パラメーターをエンコードする必要がなくなり (SQL API によって設定されます)、DB パフォーマンスの最適化も行われます。

于 2014-07-18T10:11:33.447 に答える