0

クロスサイトスクリプトの問題を解決するために、次のコードを使用して特殊文字を逃がしました。

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
    <c:set var="linkParam" value="${fn:escapeXml(linkParam)}" />

コードを実行すると、ページ ソースで特殊文字がエスケープされていることがわかります。

    <a href='/result.jsp?name=O&#39;Neil'>O'Neil</a>

しかし、リンクをクリックすると、ブラウザのアドレスバーに「/result.jsp?name=O'Neil」が表示されます。

4

1 に答える 1

0

この動作は仕様です。
ブラウザは、リンクに移動するときに属性値をデコードします。

ただし、リンク値にや などの文字が含まれている場合は、リンク値をURLパラメータでエンコードする必要があります。%&

于 2012-12-13T14:38:06.887 に答える