2011-01-03 19 views
0

グリーティング誰もがスクリプトインジェクションから私のサイトを守るために必要な手順は?

JavaScript攻撃や他のあらゆる種類の攻撃予防とケアの初心者であるため、私は自分のウェブサイトを攻撃に対してより安全にする方法についていくつかご意見をいただきたいと思います。

私たちはアラビア語(utf8)で新しいウェブサイトを立ち上げています。私たちのウェブサイトには、ユーザーからの検索文字列を受け取り、この文字列を結果と共に表示する入力ボックスがあります。また、この文字列は私たちのmysqlデータベースに挿入され、人々が何を探しているかを追跡します。

私がバックエンドで行ったことは、検索文字列にstrip_tags、mysql_real_escape_stringを入れたことです。私は入力検索文字列上でjavascriptのエスケープ関数を使ってみましたが、これはアラビア文字を完全に駄目にしてしまい、バックエンドで検索したり、検索した文字列をフロントエンドで表示することはできません。ウェブサイトを攻撃からより安全にするために、フロントエンドまたはバックエンドで何かできることはありますか?

あなたに感謝 イムラン私は強くクライアント側でエスケープの任意の並べ替えを行うことに対して助言する

答えて

2

。悪意のあるユーザーがエスケープを回避するためにスクリプトの末尾を変更したり、古いブラウザ(またはスクリプトブロッカーを持つブラウザ)がスクリプトの実行を妨げる可能性があるため、エスケープが実際に行われるという事実に頼ることはできません。一般的な規則として、は決してで、クライアント側からのデータを信頼します。たとえクライアント側でそのデータをサニタイズしようとしても、それを信頼します。

サーバー側で何をしているのかは、善意のようです。コードへのアクセスがなくても、私があなたがそれらの関数を正しく使っているかどうかを確認することはできませんが、少なくとも正しい方法で使用しています。

ところで、運が良かった!

+0

合意。データがサーバーに到着する前に、サーバーから何かを期待することができます。ハッカーはおそらくアンチハッカーよりも賢明でしょう。 – JCOC611

0

デザインを変更することで問題を回避できます。
入力ボックスをそのままにしておき、結果に検索文字列を戻さないでください。

DBに保存するリストについては、Webページのユーザーに表示しない限り、スクリプトを挿入するリスクはありません。

+0

両方のケースは可能ではありませんが、あなたのアイデアに感謝します –

関連する問題