我正在建立一个小网站,我将成为唯一的用户(假设我的凭据是“myuser”,密码为“mypassword”)。在登录页面中,我有这个简单的形式:
<form method="post">
<p>Username: <input type="text" name="usr"></p>
<p>Password: <input type="text" name="passwd"></p>
<p><input type="submit" value="Login"></p>
</form>
只是像这样验证表单是否安全?
// After checking if the request is POST...
if($_POST["usr"]=="myuser"&&$_POST["passwd"]=="mypassword") {
// Set the cookie and go to admin page...
} else {
// Show login error...
}
或者我是否需要对两个$ _POST变量应用一些安全措施(例如通过使用htmlspecialchars或类似的东西过滤它们)?正如您所看到的,凭据不会保存在数据库中,并且这些变量也永远不会在代码中的任何其他地方调用,所以即使恶意用户试图使用SQL Injection或XSS攻击表单,我也看不到任何危险
所以,我错过了什么吗?离开这样的代码是否存在潜在的危险?
答案 0 :(得分:0)
我觉得很好,你可以添加一个哈希函数&amp;防止蛮力攻击以确保更多的东西。 :) (抱歉还不能发表评论)
答案 1 :(得分:-2)
使用php我们可以使用mysql_real_scape_string(),这个函数有一个参数可以修改删除特殊字符的字符串。此函数返回一个安全字符串,现在我们可以将此字符串执行到SQL查询中。