我的网站有页眉、页脚和主要内容。如果用户未登录,则对于主要内容,可能会显示登录表单而不是实际内容。
在该登录表单上,我$_SERVER['REQUEST_URI']
在会话变量中写入了$_SESSION['redirect']
。
我的登录表单后处理程序,它将登录用户,将在成功登录后将用户发送到此链接header('location: http://myserver.com'.$_SESSION['redirect']);
因此,如果我转到myserver.com/somesite.php?somevar=10
它会在您登录时显示正确的站点。否则它将显示登录表单,但是浏览器地址栏中的 URL 仍然显示myserver.com/somesite.php?somevar=10
Then you enter your credentials and you are redirected to myserver.com/somesite.php?somevar=10
,这将然后 - 因为您现在已登录 - 完全显示。
我不将该REQUEST_URI
值用于表单操作或用作链接 href。
此外,$_GET
我使用的任何变量我首先检查它们是否匹配正则表达式(通常变量将是一个sha1
字符串或随机生成的数字和字母字符串,没有特殊字符),如果 get 变量,我总是使用准备好的语句用于数据库查询。
我的问题是是否有任何安全问题?有什么方法可以利用这个,在 url 中输入恶意内容,然后将其发送给另一个用户,例如......?我应该在这个过程中以某种方式逃避某些东西吗?