加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

包含双引号字符串的php和javascript警报

发布时间:2020-12-13 17:01:16 所属栏目:PHP教程 来源:网络整理
导读:这是我应该在 javascript alert()中输出的字符串示例; 带有“双引号”的字符串 因为我的用户可以通过PHP编辑这个字符串,所以最好防止XSS攻击.要在我的文档的HTML中这样做,我通常会这样做: ?php echo( htmlspecialchars( $MY_STRING,ENT_QUOTES,'UTF-8' ) );
这是我应该在 javascript alert()中输出的字符串示例;

带有“双引号”的字符串

因为我的用户可以通过PHP编辑这个字符串,所以最好防止XSS攻击.要在我的文档的HTML中这样做,我通常会这样做:

<?php echo( htmlspecialchars( $MY_STRING,ENT_QUOTES,'UTF-8' ) ); ?>

这很好用.

但是现在我注意到如果我在javascript警报中输出相同的字符串:

<script>
alert( "<?php echo( htmlspecialchars( $MY_STRING,'UTF-8' ) ); ?>" );
</script>

在这种情况下,警报的输出是:

字符串& quot; double quote& quot;在里面

在警报中输出双引号的最佳方法是什么,还有预防XSS注入?

解决方法

ENT_NOQUOTES标志确保所有引号’和’都不会被转义,并且addslashes会为js alert函数转义它们.

$string = 'string<< with "double quote" in it';
echo htmlentities(addslashes($string),ENT_NOQUOTES);

输出:

string&lt;&lt; with "double quote" in it

保留你的报价并逃脱恶意的html标签

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读