关于".htc.."文件上传漏洞的一点思考

浏览:513 发布日期:2019/12/24 分类:求助交流 关键字: 数据库安全,上传安全,sql注入
这漏洞,我想了很久,也baidu了一下,mime类型检查也能躲过.我就想了,为什么上传的文件,我们不先转码一下在保存起来呢?比如,上传post上来的a.jpg,你说可能是php内容,怕htc攻击shell,取得执行改名等权限,我就想了,为什么不给base64_encode()转码一下呢?管你"=select XXX"或是"?/update\delete?*/?=id=5"这种数据库比较/插入/更新攻击,只要你是上传上来的文件,我读取上传的文件内容get_from_file()然后都是base64转码,然后用aes('密码',原文)在进行转码一次,密码自己知道,经过转码的文件,下次使用的时候,转码一次到明码保存在字符串中,用where(数组)方式来比对或查询,这样就能避免数据库sql注入攻击或是上传文件phpshell攻击什么.
2.cookie与session
cookie可以保存用户名,其他都不保存,session相对来说可以保存所有的
密码源码首先的md5,然后用password_hash()进行转码,然后用hash特有的密文比较方式比较,不要存储明文到数据库,为了有一天你的数据库被人一锅端的时候,他看到的只是一堆密文.
3.数据库
每个表用一个密文,加密所有字段的数据,只要用户能写入,更新的字段都是这样保存密文.写一个通用加密与解密函数,放在项目的common.php中,在控制类或是自定义类的__construct()中写判断是否登录等等验证操作.
每个控制器类的方法,除了必须对外访问的,比如查询更新,全部改成private function 方式.这样就可以防止继承,权限下移越权.
4.思考让人进步!有说的不正确的地方,一起讨论
最佳答案
评论( 相关
后面还有条评论,点击查看>>