sql >> データベース >  >> RDS >> Mysql

urlencode()は、2011年にすべてのSQLインジェクション攻撃を阻止するのに十分です。

    urlencode() 何もすることはありません SQLを使用すると、灯油と同じようにSQLインジェクションを防ぎ、ハンバーガーをより美味しくすることができます。さらに、データベースに入力されるものはすべてURLエンコードされ、データベースを取得した後でそれらを使用して何か役立つことを行う場合は、デコードする必要があります。

    一方、クエリをエスケープすると、アプリケーションがSQLインジェクションを防ぐのに役立ちます。 データを変更することはありません クエリを入力します。 クエリを保護するだけです 改ざんから。これがSQLインジェクションの考え方であり、データをエンコードするURLがそれを防ぐために何もしない理由でもあります。確かに、します アポストロフィを回す' %27に 、それらを無害にしますが、上記の段落で述べたように、それらを使用するには、それらをアポストロフィにURLデコードする必要があります。

    適切な目的のために適切なツールを使用してください。特に2011年には、クエリ変数を手動でエスケープして文字列を連結してクエリを作成するのではなく、プリペアドステートメントを使用する必要があります。



    1. パスワードプロンプトなしでUbuntuにMySQLをインストールする

    2. PDO-無効なパラメータ番号

    3. Doctrine-Entityを既存のテーブルから自動生成

    4. WSLMySQLでMySQLWorkbenchを接続しますか?