2016-08-10 7 views
-2

を選択するために、テキストを追加します。したがって、渡されたelement_nameを使用して要素を選択するより良い方法があります。これは代替として使用できます。より良い解決策は、私のような機能を持っている要素のjQuery

自動化されたコードレビューのアプリケーションが懸念としてこれをマーキングされています"This may enable a DOM XSS attack."

+0

pass element_id? '$( '#element_id')。show()'? –

+3

___ 'some security concern' ___?それは何ですか ? – Rayon

+2

私は不思議です、なぜこれはセキュリティ上の懸念ですか?これがセキュリティ上の懸案事項である場合、他のすべての選択肢もサーバー側に関係なくセキュリティ上の懸念事項になります。 – Ozan

答えて

1

ジャバスクリプト(および「隠された」コンテンツ)がクライアント側であるので、言及する価値はセキュリティがとにかくありません。クライアントは信頼できません。

あなたが関数に与えた文字列を解析できないようにする必要がある場合は、代わりにdocument.getElementByIdを使用します。

function test(element_name){ 
    $(document.getElementById(element_name)).show(); 
} 
+0

私はこれを知っていますが、コードレビューアプリケーションはこれを最優先事項としてマークしています。 'これはDOM XSS攻撃を可能にするかもしれません。 ' –

+0

@ atulquest93私のアップデートはあなたのセキュリティレビューに役立つかもしれません。コードレビューアプリケーションは勧告であることに注意してください。一方では、盲目的に指示に従うだけではいけません。一方で、特定の警告を無視する正当な理由があるはずです。 – Ouroborus

+0

jQueryがセキュリティ上の問題となる文字列を解析する方法はありますか? (受け取っている文字列が '#'で始まると仮定すると、) – nnnnnn

0

要素は、特定のオブジェクトの子であるかどうかをチェックすることができますまたはあなたがカスタムタグを追加することができます.show()とそれをチェックできる要素が必要ですが、IDを介してオブジェクトを割り当てる他の "安全な方法"はないと思います。

関連する問題