9

今朝、KnockoutJS、jQuery、Underscore.jsを実行している私のプロジェクトに関するJavaScriptアラートに目が覚めました。「ユーザーのブラウザで任意のJavaScriptを実行できます」と表示されます。私がダウンロードしている唯一のサードパーティのJavaScriptはTypekitであり、それを削除してもこれがなくなるわけではありません。JavaScriptとベンダーのJavaScriptを検索しましたが、この文字列は何にも一致しません。

これをどのようにトラブルシューティングしますか、および/またはこれは発生することが知られているものですか?

4

3 に答える 3

13

アプリケーション用のデータベースがある場合は、それが次に確認する場所になります。誰かがインジェクションの脆弱性(サニタイズされていないHTML入力またはSQLのいずれか)を見つけて悪用し、データベースを介してスクリプトをページにインジェクションしたと推測しています。

最後の場所は、ルビーコードを調べて、悪意のあるユーザーがソースを変更したかどうかを確認することです。

于 2012-04-23T14:39:42.080 に答える
3

明らかに、ユーザーからの入力を受け取り、引用やサニタイズを行わずにHTMLの一部として出力します。行うべき2つの簡単なチェックがあります:

1)このアラートを出力するページのオープンソースと、アラートの正確なテキストをソース内で検索します。これにより、ユーザーが入力したフィールドが危険にさらされていることが明確に示されます。2)確かに、ユーザーが生成したデータベース内の他のすべてのフィールド(ログイン名、コメントのテキストなど)で、「script」および「alert」という単語を検索してください。

将来のために:入力をHTMLページに挿入する前に常にサニタイズ(HTMLタグを削除)するか、標準に従ってシンボルをエンティティとしてエスケープするか、DOMのテキストノードの値に割り当てることでプレーンテキストを明示的に処理します。

于 2012-04-23T14:43:44.967 に答える
0

それはあなたのサイトでのハッキングの試みのように聞こえます。ユーザー入力を受け取っている、使用されているデータベース、テキストファイルなどを確認します。私が推測しているように、サーバーに何が投稿されているかをチェックしていないようです。

于 2012-04-23T14:41:34.523 に答える