在register.php文件中包含用户名(电子邮件,密码等)验证的javascript代码。
例如,Javascript包含此类代码 var url =“_ password_confirmation_validator.php”;
_password_confirmation_validator.php从输入表单(register.php)获取值并验证输入。
任何查看register.php源代码的人都可以看到服务器上存在文件_password_confirmation_validator.php
当我直接导航到_password_confirmation_validator.php时,我可以看到密码为空的消息。
如果在_password_confirmation_validator.php中我放置了标题重定向(如果有人直接导航到该文件,则重定向,则ajax不起作用)。
如果在_password_confirmation_validator.php中,ajax也不起作用我放置条件如
if ($_POST['register'] ){
表单输入字段就像输入onkeyup =(所以onkeyup ajax开始验证)。
问题是
1)如果有人直接导航,如何为_password_confirmation_validator.php写一些条件以显示任何内容?
2)如果有人可以在视图源中看到文件名,是否存在安全问题?如果是,那将是什么解决方案?
答案 0 :(得分:1)
检测Ajax标头:
if(empty($_SERVER['HTTP_X_REQUESTED_WITH'])) {
die("");
}
但请注意,专家黑客只会在请求中添加此类标头。
另一种方法是在页面中放置一个随机代码并随请求发送,每次都重置代码然后生成一个新代码。
<强>更新强>
最合适的方法是在页面中添加一个额外的随机(基于时间)参数。或者只是使用验证码/重新验证码
答案 1 :(得分:1)
如果有人直接导航,则无法更改页面,因为服务器无法在正常请求和AJAX请求之间产生干扰。黑客可以轻松操纵请求的标头。
关于你的第二个问题,一个好的规则是永远不要通过可能没有发布的AJAX发送信息。如果您这样做,请考虑使用密码系统和使用HTTPS。