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

时间:2017-08-31 05:39:25

标签: javascript jquery xss

我在标题

中定义了全局base_url
"page123.html?page=1"

在ajax或其他js请求我自己的url资产文件夹中,我使用<script> base_url = 'www.domain.com'; </script> 变量从url获取数据。它会在我使用php框架构建的网站中引起任何安全问题吗? 攻击者可以操纵其他用户浏览器上的信息或任何其他操作吗?

2 个答案:

答案 0 :(得分:0)

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

remote_file_size () {
  printf "%q" "$*"           |
    xargs curl -sI           |
    grep Content-Length      |
    awk '{print $2}'         |
    tr -d '\040\011\012\015' |
    gnumfmt --to=iec-i --suffix=B # the `g' prefix on `numfmt' is only for systems
  # ^                             # that lack the GNU coreutils by default, i.e.,
  # |                             # non-Linux systems
  # |
  # |                             # in other words, if you're on Linux, remove this
  # |                             # letter `g'; if you're on BSD or Mac, install the GNU coreutils
} # |                                        |
  # +----------------------------------------+

要防止此类行为在匿名函数中包装代码并立即调用

base_url = 'www.scam-domain.com'

比您的变量不再在全局范围内,并且无法从该位置更改。

答案 1 :(得分:0)

由于必须从后端处理安全性,因此全局变量不会产生额外的安全问题。

无论是否有全局或局部变量,都可以操纵前端。

选中此javascript global variables - protection

然而,在js中使用全局变量并不是一个好习惯,但它取决于很多事情。

同时检查http://wiki.c2.com/?GlobalVariablesAreBad