大型网站之安全篇

网站的安全框架(安全性)

a.黑客攻击
XSS攻击
XSS攻击即跨站点脚本攻击,指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
常见的XSS攻击分为
反射型:攻击者诱导用户点击一个嵌入恶意脚本的链接,到达攻击的目的。
持久型:黑客提交含有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的。

防护手段
消毒:即对某些html危险字符转义,如“>”转义为“>”、“<”转义为“<”等,就可以防止大部分攻击。
HttpOnly:即浏览器禁止页面JavaScript访问带有HttpOnly属性的Cookie。这种方式可以防止XSS攻击者窃取Cookie.

注入攻击
攻击者在Http请求中注入恶意SQL命令,服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库执行。

如果网站开启错误回显,即服务器内部500错误会显示到浏览器上。攻击者通过构造非法参数,使服务端异常信息输出到浏览器端,
为攻击者猜测数据库表结构提供了便利。

防护手段
盲注:关闭错误回显,加大攻击者猜测数据库结构的难度。
消毒:通过正则表达式,过滤请求数据中可能注入的SQL(比如用表User 可能在password字段中嵌入SQL语句到达攻击的目的)
参数绑定:使用预编译手段,绑定参数是最好的防SQL攻击的方法。(比如Mybatis 使用#{} 来注入参数防止注入攻击)

CSRF攻击
攻击者通过跨站请求,以合法的身份进行合法操作,比如转账交易、发表评论等。
其核心是利用了浏览器Cookie或者服务器Session策略,盗用用户身份。

防护手段
表单Token(用户令牌):通过在请求参数中添加随机数的方法来阻止攻击者获取所有请求参数。
验证码:请求提交时,需要用户输入验证码,以避免在用户不知情的情况下被攻击者伪造请求。
Referer check:Http请求头中的Referer域中记录着请求来源,可以通过检查请求来源,验证其是否合法。

其他攻击
HTML注释:程序最终发布前需要进行代码review或者自动扫描。避免HTML注释漏洞。
文件上传:设置文件白名单,只允许上传可靠的文件类型。
路径遍历:将JS、CSS等资源文件部署在独立服务器、使用独立域名,其他文件不使用静态URL访问,动态参数不包含文件路径信息。

b.ModSecurity Web应用防火墙
ModSecurity是开源的Web应用防火墙,支持Nginx、Apache等服务器。其采用处理逻辑与攻击规则集合分离的架构模式。
处理逻辑(执行引擎)负责请求和响应的拦截过滤,规则加载执行等功能。而攻击规则集合则负责描述对具体攻击的规则定义、模式识别、防御策略等。(可以通过文本方式进行描述)

c.加密算法
摘要算法:
MD5 128位摘要 速度快 数据无论有多大,过程都不可逆转
SHA1 160位摘要 强度高 都是以固定长度展示

主要用途:验证信息完整性、安全访问认证、数据签名
通过字典的方法进行破解。

对称加密算法:
AES 128位、192位、256位 加密速度更快,安全性更高
DES 56位、 112位、168位
特点:加密和解密选择相同的秘钥。

非对称加密 RSA
特点:非对称加密和解密使用不同的秘钥,分为公钥和秘钥。

发布了226 篇原创文章 · 获赞 40 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_40990818/article/details/102328914