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

node-mysqlでSQLインジェクションを防ぐためのベストプラクティスは何ですか?

    SQLインジェクションは、コマンドをブロックすることではなく、コマンドとして解釈される敵対的な文字列によって引き起こされることに注意してください。文字列化されたバージョンではなく、元の文字列を取り戻していると確信していますか?

    たとえば、これら2つの間に大きな違いがあります:"test" および"'test'"

    通常、有害なキャラクターのみがエスケープされ、残りはそのままになります。

    低レベルのドライバーの使用は避けるのが最善です。 続編 のようなライブラリを試して使用してください いくつかの抽象化とより多くのサポートを提供します。このモジュールは、通常、エスケープを問題にしないプレースホルダーステートメントをサポートし、自動的に処理されます。

    置換を伴う生のクエリ のセクションをご覧ください これを行うことができる場所:

    sequelize.query('SELECT * FROM projects WHERE status = ?',
      { replacements: ['active'], type: sequelize.QueryTypes.SELECT }
    ).then(function(projects) {
      console.log(projects)
    })
    

    クエリのインライン文字列ではなく、適切に処理される明示的な値としてデータを指定しているため、ユーザーデータが漏洩するリスクはありません。



    1. 破損したデータベースpostgresqlを修復します

    2. すべてのテーブルを表示します。説明のような機能

    3. Node.jsをWindowsプラットフォーム上のOracleに接続します

    4. SQLServerCRUDの操作