1 文件上传防御
1 文件上传目录设置为不可执行
只要Web容器无法解析该目录下的文件,即使攻击者上传了脚本文件,服务器本身也不会收到影响。很多大型网站的上传应用,文件上传后会放到独立的存储上,做静态文件处理,一方面使用缓存加速,降低性能损耗;另一方面也杜绝了脚本执行的可能。
2 判断文件类型
判断文件类型时,结合使用MIME Type,后缀检查等方式。在文件类型检查中,强烈推荐使用白名单,而不是黑名单的方式。
此外对于图片的处理,使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。
3 单独设置文件服务器的域名
由于服务器同源策略的关系,一系列客户端攻击将失效,比如上传
crossdomain.xml,上传包含JavaScript的XSS利用等问题将得到解决。能否如此设置,需要看具体的业务环境。
除此之外,文件上传功能,还要考虑到病毒,木马,色情图片和视频,反动政治文件等与具体业务安全结合更紧密的问题,则需要做的工作就更多了。不断的发现问题,结合业务需求,才能设计出合理的,最安全的上传功能。
2 SQL注入的防御
解决思路:
– 找到所有的SQL注入漏洞
– 修补这些漏洞
1 使用预编语句
防御SQL注入的最佳方式,就是使用预编译语句,绑定变量。
2 使用存储过程
效果与预编语句类似,区别在于存储过程需要先将SQL语句定义在数据库中。也肯呢个存在注入问题,避免在存储过程中,使用动态的SQL语句。
3 检查数据类型
4 使用安全函数
各种Web语言都实现了一些编码函数,可以帮助对抗SQL注入。
5 其他
数据库自身角度来说,应该使用最小权限原则,避免Web应用直接使用root,dbowner等高权限账户直接链接数据库。为每个应用单独分配不同的账户。Web应用使用的数据库账户,不应该有创建自定义函数,操作本地文件的权限。
原文链接:https://blog.csdn.net/u014315849/article/details/81951327
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18737