XSSホールを持つ保護されていないJSPがあります。 <c:out value="${...}" />
タグの中にすでにではない${...}
の文字列をすべて<c:out value="${...}" />
で置換する必要があります。
<select>
<option value="${foo}">label</option>
</select>
${bar}
<c:out value="${message}" />
が正規表現に置き換え、以下にする必要があります例えば
、:
<select>
<option value="<c:out value="${foo}" />">label</option>
</select>
<c:out value="${bar}" />
<c:out value="${message}" />
通常それはかなり逆だ -
@EugeneRetunsky '
@Eugene:これを読んでください:http://stackoverflow.com/questions/2658922/xss-prevention-in-java/2658941#2658941おそらくあなたはJSPを後継のFaceletsと混同しています。テンプレートテキストのELは、実際に暗黙的にエスケープされます。 – BalusC