2017-08-31 108 views
2

我在头将js变量定义为全局会导致任何安全问题吗?

<script> 
base_url = 'www.domain.com'; 
</script> 

和Ajax或从资产文件夹我自己的网址其它JS请求过程中定义的全局BASE_URL,我使用base_url变量来从URL数据。它会导致我的网站使用PHP框架建立任何安全问题? 攻击者可以操纵其他用户的浏览器信息或其他操作吗?

回答

0

因为它可以被覆盖。想象一下,有人打开控制台和类型

base_url = 'www.scam-domain.com' 

为了防止这种类型的行为包装代码在匿名函数,并立即把它

(function() { var base_url = 'www.domain.com' })() 

比你的变量不再是全球范围内,并不能从改变地点。

+0

他们可以简单地设置在你的代码中设置断点,并重新分配变量调试器停止时。 – Barmar

0

拥有全局变量不会产生额外的安全问题,因为您必须处理来自后端的安全性。

无论具有全局变量还是局部变量,都可以操作前端。

入住这​​3210

但是其在全局变量的JS是不是一个好的做法,但它取决于许多因素。

入住这也http://wiki.c2.com/?GlobalVariablesAreBad

+1

攻击者可以操纵其他用户浏览器上的信息吗? –

+1

可以使用控制台在自己的浏览器中更改变量的值。 但不能直接改变别人的,但可以尝试像XSS攻击,病毒,恶意插件等。最好不要相信前端的任何东西,并确保从后端获得安全保障。 –

+0

[https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)) –