「忠於原文」的前端轉碼問題

用戶輸入的文本,有可能在不少地方出現,在出現時須要做轉碼,一方面是出於安全考慮(xss等),另外一方面也是須要「忠實」的顯示用戶的合法輸入。html

看下下面的各個?號,須要什麼轉碼方式:安全

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8" />
    <title>模板頁面--JK@奇舞團</title>
    <script src="http://s0.qhimg.com/lib/qwrap/113.js"></script>
    <style>
    </style>
</head>

<body>

    用戶輸入的值是: &lt;input onclick="alert('hello')">\&amp;amp; <br>
    請將本html文件中的代碼中的?改爲對應的編碼後的文本,使之在輸出時忠實的顯示成用戶輸入的值。<br>
    注:如下代碼裏的部分使用方法應在現實中避免。
    <hr/>

    <div>
        1. div裏顯示用戶輸入的內容:?
    </div>

    <div>
        2. input裏顯示用戶輸入的內容:<input value="?">
    </div>

    <div>
        3. textarea裏顯示用戶輸入的內容:<textarea>?</textarea>
    </div>

    <div>4.
        <script>
            var a="?";    
            alert("4. alert用戶輸入的內容:"+a);
        </script>
    </div>

    <div>
        5. document.write用戶輸入的內容:
        <script>
            var a="?";
            document.write(a);
        </script>
    </div>


    <div>
        6. 點擊,顯示用戶輸入的內容:<input onclick="alert('?')" type=button value="click">
    </div>

    <div>
        7.
        <script>
            var a="?";
            document.write('點擊,顯示用戶輸入的內容:<input onclick="alert(\''+a+'\')" type=button value="click">');
        </script>
    </div>

    <!--
    <hr>
    <textarea id="test1" ></textarea><br><input type=button value="轉化" onclick="trans()"><br>
    <textarea id="test2"></textarea>
    <hr>
    <script>
        function trans(){
            W('#test2').val(W('#test1').val().encode4Js().encode4HtmlValue().encode4Js())
        }
    </script>
    -->
</body>
</html>
相關文章
相關標籤/搜索