“忠于原文”的前端转码问题

用户输入的文本,有可能在很多地方出现,在出现时需要作转码,一方面是出于安全考虑(xss等),另一方面也是需要“忠实”的显示用户的合法输入。

看下下面的各个?号,需要什么转码方式:

<!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>

 

posted on 2014-03-20 18:58  JKisJK  阅读(1437)  评论(2编辑  收藏  举报

导航