2012-01-14 6 views
0

今、私は、サーバーから動的にロードされたコードのeval()を実装することを考えています。あらゆる種類の "eval()" ingは良い考えではありません。実際には(特にセキュリティのために)。何が気になるか:Webアプリケーションセキュリティ:JavaScriptコードとデータの置換

私はSSLやサーバー認証技術を使用しないと、自分のパッケージを置き換えて、ユーザーのマシン上でJSコードを実行するのがとても簡単です。さて、ハードウェア(WebGL)用のAPIがあると危険です(?)。

しかし、他の人には、何らかの理由でセキュリティが確保されていても意味がありません。なぜなら、ユーザーのserfsであれば、ブラウザが.jsファイルをサーバーから要求したときに、例えばサイト)。

ウェブアプリケーションに重要なデータがない場合は、サーバ認証の王を実装する必要がありますか?攻撃者は、単に動的にロードするのではなく、ページを置き換えることができます -

+0

なぜ、これを評価する必要がありますか? – epascarello

+0

JSはどこから来たのですか?書きますか? – greut

答えて

3

eval()命令と、あなたが動的にロードしているJSのソースコードを含むページが同じサーバー上にある場合は、何がこのために、セキュリティを低下させ、おそらくありませんコードを入力し、eval()を使用するかどうかにかかわらず、同じ破壊的な効果を達成します。

eval()動的にロードされるコードは、常にJavaScriptで実行されます。たとえば、jQueryの​​でHTMLを読み込むと、その中のJSが抽出され、eval()が自動的に読み込まれます。あなたはeval()何かこのように必要がある場合は

、私はあなたがセキュリティ問題を追加するとは思わない(あなたは非常によくあなたのアーキテクチャを変更することで、それを使用して避けることができるかもしれないが。)

+0

MitMは実際にWebページにコードを挿入することができますが、少なくともIMHOに言及する必要があります。 –

+0

@Niklas I * am * - 「攻撃者は、動的に読み込まれたコードの代わりにページを単に置き換えることができる」と言います。改善のための提案は大歓迎です。私のポイントは、途中に男がいると、あなたはとにかく悩んでいるということです。しかし、JSコードを動的に読み込んでいるかどうかに関係なく、状況は悪化しません。 –

+1

@NiklasBaumstark - 中間攻撃の男性が動的にロードされたjavascriptを使用すると、ホストWebページも変更された可能性があります。だから、Pekkaのポイントは、ここには新しい脆弱性はないということでした。 MitMがブラウザ要求を傍受して変更することができる場合、メインWebページは改ざんの脆弱性と同じです。 SSLを使用すると、両方のタイプの改ざんに対するセキュリティが強化されます。改ざんを行う前に、攻撃者がSSL要求を妥協する必要があります(それほど簡単ではありません)。 – jfriend00

0

をあなたがされていますevalの使用に関する余分な編集的。誰かがeval'edとなるあなたのサーバのレスポンスを変更することができれば、新しい評価を導入することもできます。

Man-In-Middle攻撃による応答の変更に関する懸念がある場合は、評価の有無にかかわらずSSLを使用する必要があります。