网站Web攻击,主要有:sql注入,css攻击,跨站脚本攻击,挂马,缓冲区溢出等。
1. sql注入:即通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击
2. CSS攻击:通过在URL里插入script标签,然后 诱导信任它们的用户点击它们,确保恶意Javascript代码在受害人的机器上运行。这些攻击利用了用户和服务器之间的信任关系,事实上服务器没有对输入、输出进行检测,从而未拒绝javascript代码。
3. 跨站脚本攻击(也称为XSS):指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。
4. 网页挂马:把一个木马程序上传到一个网站里面然后用木马生成器生一个网马,再上到空间里面,再加代码使得木马在打开网页里运行。
5. 缓冲区溢出:由于TCP/IP的设计是没有考虑安全问题的,这使得在网络上传输的数据是没有任何安全防护的。攻击者可以利用系统漏洞造成系统进程缓冲区溢出
解决方案:
1. 在 防止sql注入的时候经常会使用sql 参数化 或者是 过滤掉一些非法关键字。如果采用的是过滤一些非法关键字 如下:
"and|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare|script|script|object|-|@|&|;|$|%|'|\\|+| <|>|CR|LF|,"; 这些关键字。其中 and 这个关键字 可能在英文版本的项目中会在普通的内容中出现 这个词。如果过滤掉了 内容就不对了。 还有 中划线 “-” 因为 在sql 中 两个中划线 在一起表示注释。
2.(SQL注入就是参数化查询,脚本去掉大小括号)
3. 跨站脚本攻击: 除了显示输出内容的时候先进行编码以外还有什么其他更好的方法么。如果是过滤关键字和一些特殊字符的话 总感觉不是很好。 如果是一些内容信息 本来可能需要在里面进行一些样式 设置。有可能会把这些样式都过滤掉。