我有一个表单,用户可以在其中输入任何HTML。
var title = "Cool <a href="http://google.com">Check This</a>"
如您所见,变量有"
但它也可以是'
。如果存在"
,则会导致错误。有什么更好的解决方法?如下所示在数据库中存储转义字符串?
$title = str_replace('"', "'", $_REQUEST['title']); // Replace double quote with single quote as js variable above is wrapped with double quotes.
或者在页面上显示之前将其转义?像jQuery这样的任何东西都可以帮助到这里吗?
答案 0 :(得分:2)
var title="Cool <a href=\"http://google.com\">Check This</a>"
好吧,你无法使用JavaScript来逃避它,因为JavaScript需要看到你想要逃脱的东西而你想逃避它。如果您使用PHP,则可以在插入JavaScript之前使用addslashes()
。
无论如何,您应该小心允许插入任何HTML。错误转义的HTML(如允许插入<script>
)可以允许执行各种危险的操作,例如窃取所有Cookie。