将用户内容输出到JavaScript变量(避免XSS)

问题描述 投票:0回答:2

我需要执行以下操作:

<?php
$userContentFromDatabase = 'Some string that may contain "double  quotes" ';
?>

<script type="text/javascript">
var userContent = "<?=  $userContentFromDatabase ?>";
</script>

如何避免双引号干扰JavaScript代码?

javascript php xss
2个回答
1
投票

在PHP端使用json_encode()并返回一个对象,因为它将处理所有斜杠,否则可能会破坏您的代码。

或者如果您认为唯一的问题是双引号,则只需使用str_replace()添加斜线。


0
投票

如果您想安全地在javascript变量中转换用户数据,则需要进行更多的转义。参见“ ruke 3 https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#RULE_.233_-_JavaScript_Escape_Before_Inserting_Untrusted_Data_into_JavaScript_Data_Values

© www.soinside.com 2019 - 2024. All rights reserved.