と の使用はhtmlspecialchar
、SQL インジェクションや XSS ベースの攻撃からの保護mysql_real_escape_string
に十分ですか?str_replace
フォーラム サイト用のソフトウェアを作成しています。そのために、自分のサイトを保護したいと考えています。PDO文を作るのが苦手で、上記のライブラリ関数を使いたい。
一重引用符と二重引用符を使用するhtmlspecialchar
と、大なり記号、小なり記号、アンパサンド記号がエンコードされ、XSS 攻撃を防ぐことができます。そして、それらを元の形式にデコードしません。
次に、mysql_real_escape_string
SQL インジェクションの最初の順序を防ぎます。
3 番目に、trim
両端から空白を削除します (これはオプションの場合があります)。
最後に、str_replace
コードを介して入力されたすべてのテーブル名とデータベース名を別の名前に置き換えた場合、安全でしょうか?
例: データベース名ABC
と テーブル名があるとしますXYZ
。今、誰かがこのステートメントを使用しています:
statement = "SELECT * FROM XYZ WHERE name = '" + userName + "';"
OR
SELECT * FROM XYZ WHERE name = '' OR '1'='1' -- ';
OR
a';DROP TABLE XYZ; SELECT * FROM userinfo WHERE 't' = 't
XYZ
ここで、テーブル名をDEF
使用するに置き換えるstr_replace
と、そのようなテーブル名がないため、コードは効果がないと思います。
のような SQL インジェクション
1 OR 1=1, I Will Also str_replace \1\.
私は、、、そしてデータベースに対する特権のみを持ち、これらすべての言葉もUPDATE
私が所有します。INSERT
SELECT
DELETE
str_replace
[私の間違った英語を許してください。]