gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:16:56 24 4
gpt4 key购买 nike

这是我应该在 javascript alert() 中输出的字符串示例;

带“双引号”的字符串

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

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

效果很好。

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

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

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

带“双引号”的字符串在里面

在警报中输出双引号的最佳方式是什么,同时又能防止 XSS 注入(inject)?

最佳答案

ENT_NOQUOTES 标志确保所有引号 ' 和 "不被转义并且 addslashes 将它们转义以用于 js 警报功能。

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

输出:

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

保留您的引号并转义恶意 html 标签

关于javascript - 包含带双引号的字符串的 php 和 javascript 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com