Goodmorning guys、SQLインジェクションに対するユーザー入力をエンコードする
私はクライアントのフォームに取り組んでいます。フォームが実行されるサーバーには、非常に厳しいファイアウォールがあります。現時点では、メッセージに句読点が多すぎるため、ファイアウォールの問題を抱えています。ファイアウォールはこれをSQLインジェクションと見なしています。
送信ボタンをクリックすると、AJAXリクエストはすべてのメール送信を処理するPHPファイルに送られます。
$.ajax({
type: "POST",
url: '/wp-content/themes/THEMENAME/wp/actions/apply-position-mail.php',
data: {
job: $('input#jobtitle').val(),
firstname: $('input#first-name').val(),
lastname: $('input#last-name').val(),
email: $('input#email').val(),
phone: $('input#tel').val(),
resume: filename,
comments: comments
}
});
だけで私は/エンコード文字列(特にコメント」欄)を復号化するためにJavaScriptで方法を探していますので、ファイアウォールが全く問題にそれらを掲載していません置きます。
私はグーグルでJSの機能をエンコードしようとしましたが、誰もそのトリックを行っていませんでした。
何か助けていただければ幸いです。
をhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent) – Chase
"フォームが実行されるサーバーには、非常に厳しいファイアウォールがあります"。ファイアウォールの定義を調べるべきだと思います。 https://en.wikipedia.org/wiki/Firewall_(computing)には良いサマリーがあります。ファイアウォールはポートではなくデータをブロックします。あなたが実際に話しているのは、送信されたデータを検証するコードです。これはPHPコードにあり、ファイアウォールではありません。これは、精度がすべてであり、混乱が遅延やエラーを引き起こし、正しい用語を使用するコンピューティングに役立つためにのみ言及します。 – ADyson
しかし、とにかく質問に答えるには、フィルタリングを行っているPHPコードと、ブロックされているもののいくつかの例を見ておくと便利です。句読点は、とにかく、注射攻撃を行う手段ではありません - それが決定要因であることは確かですか?実際には、特定の文字を拒否する他のビジネス上の理由がない限り、注射攻撃を防ぐための方法には欠陥があると私は考えます。クエリを書くためにパラメータ化されたクエリなどを正しく使用している場合は、厳密にする必要はありません。 – ADyson