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

Mysqlデータベースへの入力をサニタイズする関数

    SQLに対してデータを安全にするためにhtmlentities()は不要です。 XSSの脆弱性を回避するために、データ値をHTML出力にエコーするときに使用されます。これも注意が必要な重要なセキュリティの問題ですが、SQLとは関係ありません。

    addlashes()はmysql_real_escape_stringと冗長です。データベース内の文字列に文字通りの円記号が含まれることになります。

    魔法の引用符は使用しないでください。この機能は長年廃止されています。マジッククォートが有効になっている環境にPHPコードをデプロイしないでください。有効になっている場合は、オフにします。それがホストされた環境であり、魔法の引用符がオフにならない場合は、新しいホスティングプロバイダーを入手してください。

    ext/mysqlは使用しないでください 。クエリパラメータ、トランザクション、またはOOの使用はサポートされていません。

    更新:ext/mysql PHP 5.5.0(2013-06-20)で非推奨になり、PHP 7.0.0(2015-12-03)で削除されました。本当に使えません。

    PDO を使用します 、準備されたクエリ を使用して、クエリをより安全にします。 。

    安全なSQLの記述の詳細については、私のプレゼンテーションSQLインジェクションの神話とファラシー



    1. SQLServerのデータ型の優先順位

    2. 多くの通知を伴う.NETSqlDependencyと高速ポーリング?

    3. MySQLを使用して外部キーを使用してテーブルに値を挿入するにはどうすればよいですか?

    4. Postgresqlの奇妙な動作