如果html_escape会停止转义'&'怎么办?

时间:2010-03-08 10:39:16

标签: ruby-on-rails

如果rails html_escape函数会停止转义'&',有什么危险吗?我测试了几个案例,它似乎没有造成任何问题。你能给我一个相反的例子吗?感谢。

2 个答案:

答案 0 :(得分:1)

如果你放一个未转义的“&”进入HTML属性,会使您的页面无效。例如:

<a href="http://yoursite.com/?Product=1949&View=1">Link</a>

该页面现在无效,因为&amp;表示实体。对于任何&amp; amp;的使用都是如此。在一个页面上(例如,查看源代码和希望你会注意到Stack Overflow逃脱了这篇文章中的&amp;符号!)

以下示例将使上述示例有效:

<a href="http://yoursite.com/?Product=1949&amp;View=1">Link</a>

附加说明

如果您要根据W3C validator验证标记,则需要在网址中转义

&个字符。例如:

Line 9, Column 38: & did not start a character reference. 
(& probably should have been escaped as &amp;.)

    <a href="/Example.html?id=987&type=5">Example</a>

答案 1 :(得分:0)

通过添加一些参数来更改网址