2

HTMLドキュメントから特定の文字を削除してHTMLを壊すJavaScriptを、故意に、または偶然に書くことができるかどうか、職場で尋ねられました。例として、ページ内の<記号を削除するJavaScriptを追加します。オンラインで検索してみましたが、JavaScriptで文字列を置き換えることができますが、言語に関する知識はごくわずかです。

私が取り組んでいるサイトが、ページに特注の機能を追加できるユーザーを制御する必要がある理由にうまく対処する方法として、それを調査するように依頼されました。それが不可能だといいのですが、安心していただければ幸いです!

4

6 に答える 6

2

はい。実際、javascriptを使用すると、はるかに陰湿なことを行うことができます。

http://en.wikipedia.org/wiki/Cross-site_scripting

于 2012-06-22T20:54:13.397 に答える
1

はい、それは可能です。最も簡単な例は

var body = document.getElemetsByTagName('body')[0];
body.innerHTML = 'destroyed';

ページ全体を削除し、代わりに「destroyed」と書くだけです。あなたの例に戻るために:同じようにそれを置き換えることが可能<です:

var body = document.getElemetsByTagName('body')[0];
body.innerHTML = body.innerHTML.replace('<','some other character');

such "extreme" cases are very unlikely to happen by accident, but it's absolutely possible (particularly for inexperienced javascript-developers) to break things on a site that usually shouldn't be affected by javascript.

note that this will only mess op the displayed page in the clients browser and doesn't change your html-file on the server in any way. just find and remove/fix the "bad" lines of code and everything is fine again.

于 2012-06-22T20:54:57.467 に答える
1

どのクライアント/ブラウザーでも、いつでもページの表示方法を操作できます。たとえば、クロムで F12 を押すと、必要なものを html に書き込むことができ、変更がすぐに表示されます。でもそんなこと気にしなくていいよ…

恐ろしいのは、サイトの JavaScript がバックエンド サーバーと通信し、何らかの方法で処理される前にサーバー側でサニタイズされていない入力パラメーターを提供する場合です。SQL インジェクションは、バックエンドがほとんど常に行っているデータベースを利用している場合にも、このように発生する可能性があります...

Web ページは、非永続または永続の 2 つの方法で操作できます

[none-persistent]:この方法で Web ページへのアクセスを操作できますが、これ自体は他のユーザーには影響しませんが、アクセスすると害を及ぼす可能性があります。

[永続的]:この方法では、サーバー側のコードは挿入されたコードの影響を永続的に受け、他のユーザーに影響を与える可能性が高くなります。

ここで重要なことは、バックエンド サーバーが何かを処理する前に使用する入力を常にサニタイズすることです。

于 2012-06-22T21:07:16.207 に答える
0

ファイルの内容を変更するためのJavaScript関数を間違いなく書くことができます。そのファイルが HTML ページである場合は、確認してください。

ただし、これが起こらないようにしたい場合は、その HTML ファイルのアクセス許可を読み取り専用に設定するだけで済みます。

于 2012-06-22T20:55:14.490 に答える
0

あなたは出来る:

  1. ページを上書きし、
  2. bodyタグのinnerHTMLをいじって(ほぼそのまま)、
  3. 不正な要素を挿入します。
于 2012-06-22T21:00:25.243 に答える
-1

はい。少なくとも、これを使用して、任意の要素、クラス、IDを設定するCSSを作成できます。

于 2012-06-22T20:54:21.087 に答える