使用php $ _SERVER ['QUERY_STRING']来获取url的一部分是否安全?

时间:2013-03-19 20:23:04

标签: php

我创建了一个登录表单。每个用户都有个人登录URL(每个用户的唯一URL)。例如,唯一的UL就是这样:

www.my-domain.com/unique-url-for-user

我将这部分网址:unique-url-for-user,连接到MySQL并检查unique-url-for-user是否存在。如果存在,请检查用户名和密码是否正确。要获得unique-url-for-user我计划使用$_SERVER['QUERY_STRING']

问题是:

  1. 恶意用户可以使用我的方法以某种方式损害网站吗?
  2. 恶意用户是否可以输入www.my-domain.com/x并从网址中强制所有用户帐户?
  3. 有没有办法代替$ _SERVER ['QUERY_STRING']使用其他东西来获取实际的网址?
  4. 如果用户输入www.my-domain.com/xyz,我会收到xyz,用户无法再提供其他网址。

1 个答案:

答案 0 :(得分:0)

我不同意@AlienWebguy。

所以你有来自Request的价值。

如果要在DB中使用此值,则必须使用“准备好的语句”。

当您想要在页面中显示它时:不允许HTML - 使用htmlentities,允许HTML - 剥离所有脚本,允许HTML和脚本 - 当前用户必须是受信任的用户。

如果要在文件系统中使用它(不要忘记open_basedir),请在允许的目录(realpath)中检查请求的文件,并将文件名匹配到预定义的掩码。

P.S。如果我错了,请纠正我。