2017-02-09 14 views
0
[ 
    { 
     "Book ID": "1", 
     "Book Name": "UNIX **<script type='text/javascript'>alert('test')</script>**", 
     "Category": "Computers", 
     "Price": "113" 
    }, 
    { 
     "Book ID": "2", 
     "Book Name": "Book two", 
     "Category": "Programming", 
     "Price": "562" 
    } 
] 

これはAPIを使用して送信しているJSONです。複数のユーザーと共有しています。私はJavaScriptを使用してJSONを解析すると、<script>タグは実行されません。何が<script>タグは、クライアント側のJSのいずれかの余分な作業を行わずに実行されるようにJSがJSONに注入に変更は私が作る必要があります。出来ますか?<script>のタグをクライアント側で変更せずにAJAX呼び出しで呼び出す方法JS

答えて

0

ことはできません。

ドキュメントにそのコードを挿入するために使用している技術は、あなたがそれを修正されません挿入されているものを変更するよりも、JSをトリガしない場合。

0

あなたは2つのオプションがあります。

クライアントJS GETはAPIの答えだとunsanitized <label>タグでそれを印刷した場合、たとえば、あなたが</label><script>alert(1)</script><label>のようなものを送ることができ、クライアントのページに欠陥を見つけて、それを活用しますので、あなたのスクリプトは、ラベルを閉じて、あなたのスクリプトを挿入し、再度開きます。

それとも、クライアント側に最小限の変更を行うと、このようAPIからオブジェクトを得ることができる:

{ 
    "Book ID": "1", 
    "Book Name": "UNIX", 
    "script": "alert('test')", 
    "Category": "Computers", 
    "Price": "113" 
}, 

そして、クライアント側にして、それを実行します。

Function(obj.script)(); 
関連する問題