PHP登录验证以及表单防范

POST传参数

sql语句

$sql = "SELECT * FROM {$this->table} WHERE admin_name = '$username' AND password = '$password' LIMIT 1";

万能密码:

xxx’or’1 

原理:修改sql语句
防止:密码md5加密

万能用户名:

 xxx’or1#

原理,#后面的全部不执行

总结:万能用户名和密码都利用了一个特殊符号,单引号,如果要防止就让单引号失去意义
addcslashes:单引号转义
所有调用表单信息都要使用转义

function deepslashes($data) {
    if (empty($data)) {
        return $data;
    }
    is_array($data) ? array_map('deepslashes', $data) : addcslashes($data);
}

GET传参数

sql语句:

delete from cz_category cat_id = 1

攻击参数:

1 or 1

通常是id强制转换为整形,或者输出变量+0隐示转换为整数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容