首页 存档 技术 查看内容

Web安全与防御措施 最基本原则

2018-3-30 13:00 |来自: 互联网 295 0

摘要: 服务攻击:针对程序漏洞进行攻击常见的有: SQL注入攻击 文件上传攻击 XSS跨站脚本攻击 CSRF(Cross-site request forgery)跨站请求伪造 程序逻辑漏洞 暴力攻击:如DDOS,穷举密码等 C段攻击 某台服务器被攻陷后 ...

  • 服务攻击:针对程序漏洞进行攻击常见的有:

    • SQL注入攻击

    • 文件上传攻击

    • XSS跨站脚本攻击

    • CSRF(Cross-site request forgery)跨站请求伪造

    • 程序逻辑漏洞

  • 暴力攻击:如DDOS,穷举密码等

  • C段攻击 某台服务器被攻陷后通过内网进行ARP、DNS等内网攻击

  • 社会工程学 收集管理员等个人信息等资料尝试猜测其密码或者取得信任等

最基本原则

永远不要相信用户提交上来的数据(包括header\cookie\seesionId),都可能造假

sql注入

原理:

后台的SQL语句通过字符串拼接后后导致执行各种意想不到的语句,配合sql语句的outfile功能,还能写入一个脚本文件到服务器。

例子:

  • 比如根据用户post来的ID来列出单个人的信息 假设用户提交的id=1拼接出来为select * from table where id=1这时执行正常 假设用户提交的为id=1 and 1=1拼接出来为select * from table where and 1=1这时执行异常,所以内容都被查出来了

  • 又如根据用户提交的job_rul=**来拼接,但是攻击者提交了job_rul=sql' or 1=1 limit 1--

    //正常的语句select * from job_info where job_url='sql' limt 10//攻击者提交的 “sql' or 1=1 limit 1-- ”后 变成下面这样 注意--后面有空格
    select * from job_info where job_url='sql' or 1=1 limit 1-- ' limt 10//上面语句后面 -- 和后面的内容 都表示注释//故只会执行 select * from job_info where job_url='sql' or 1=1//所有信息都被查出来了

    预防:

  • 在SQL拼接时注意过滤替换用户输入的字符串(但是本人不推荐这种方式)

  • 最安全的是mysql的预编译prepare,PHP的PDO将其实现了。因为语句先编译好了,用户怎么传都是一个参数。

文件上传攻击

没有过滤就接收用户上传的文件(如.php等文件)或者没有给文件重命名,最后通过攻击者通过web请求导致恶意脚本调用被执行

常见漏洞

  • CGI漏洞 IIS7.5以下,nginx

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部