为什么HTML在设计的时候没有强制,非标签、属性字符必须扩上双引号?比如<a>"string"</a>。如果这样刻板的规定一下,我们现在就要减少很多的麻烦,特别是,用户恶意输入HTML标签或者脚本的问题就不存在了。为什么,HTML的数次修订都不关注这个问题呢?这已经引起了很大的安全隐患。我真的很奇怪,不知道,标准制定者出于什么考虑。为什么微软在发现这个问题的严重性后,没有强制IE使用这个办法呢?这也是向前兼容的做法。很奇怪。我真的很奇怪。难道,全球这么多程序员,只有我一个人想到了?

解决方案 »

  1.   

    想到这么深奥的bug,楼主快结贴,免被比尔暗杀。
      

  2.   

    因为,客户端仍然可以输入这样的字符串来规避。"<script></script>除非,强制从客户端返回的"都自动转换为转译付。如果这么做,就可现在的一样了。可以强制从客户端返回的HTML标签自动转换为,转意符。
      

  3.   

    这个要看个人,死板和灵活都各有所取。太死板了就没有你的发挥余地了.
    xml就死板,那你就用xml/xsl来做的网页吧。