所以我环顾四周试图在这上面找到一些帖子,但是有很多但没有一个可以解决我的具体问题(我能找到)。
基本上我需要从我的数据库中获取一些数据到我的外部javascript文档。
我目前正在做的是这样......
<?php for (loop through products): ?>
<script>
var $each_image_information = new Array(
"<?php echo $getVariable; ?>",
"<?php echo $getVariable; ?>");
</script>
<?php endfor ?>
然后我的外部.js文件访问变量$ each_image_information。我意识到这有点凌乱的代码,因为这些变量有点全局 - 但我不确定我是否知道可能的(用我的技能组合)替代方案。
我真正的问题是,这是否会为我正在实施的网站带来任何安全漏洞。由于这些值是从数据库回显到内联javascript文件,这些变量可以被操作吗?
这可能是一个愚蠢的问题,但我已经有过SQL注入的经验,当时我不知道那些是可能的,所以我试图在安全方面犯错误。
提前致谢!
答案 0 :(得分:1)
这就是你在做什么
Sql - &gt; Php - &gt;的Javascript
只要你不这样做
Sql - &gt; Php - &gt; Javascript - &gt; Php - &gt; Sql,那么从SQL注入的角度来看你应该没问题。
Javascript变量总是可以修改的,如果你在SQL查询中使用它们,你应该首先清理它们(mysql_escape_string()或类似的东西)。
答案 1 :(得分:1)
好的,要了解此问题,您必须了解Javascript是客户端。这意味着任何人都可以做任何他们想做的事情,所以答案是“这些变量可以被操纵吗?”是一个响亮的是!如果您只想下载Firebug,您可以根据需要开始将它们更改为最新的Google徽标: - )
但是,这一切都不重要,因为如果用户可以搞乱他们自己的客户端,那就没有安全漏洞了。您需要担心的是用户A在用户B的客户端上获得可怕的代码。如果用户A可以选择这些图像的文件名,这只是一个问题,因为他们可以在这里命名他们的图像插入可怕的代码,并且该代码可以在用户B的计算机上运行。
但是只要你控制图像文件名(或者只是逃避它们中的任何JS),你应该都很好。
答案 2 :(得分:0)
只要你没有提供回数据库的路径,你应该没问题。
请记住,如果您没有返回数据库的路径,但将来可能会有路径,那么您可能希望对数据中的主键进行一些遮挡;为了确保您的内部数据库表示不会暴露,这总是一个好主意。