当前位置: 首页 > 科技观察

Web安全简明入门指南

时间:2023-03-13 00:34:32 科技观察

Web安全已经是Web开发的重要组成部分,很多程序员往往想把精力放在程序的实现上,而忽略了信息安全的本质。如果不慎重考虑信息安全问题,一旦出现问题,将会造成更严重的损失。所以在开发web应用的时候要多注意web安全,甚至努力成为白帽黑客。常见的Web信息安全一般来说,Web安全需要满足三个安全要素:机密性:通过加密等方式保证数据的机密性Accessibility以下是影响Web安全的常见攻击:1.SQL注入利用恶意SQL语法影响数据库content://"--"是SQL语句的注释符号/user/profile?id=1";DROPTABLEuser--SELECT*FROMUSERWHEREid="1";DROPTABLEuser--userlogin://password"AND11=1--SELECT*FROMUSERWHEREusername="Mark";AND11=1--ANDPASSWHERE="1234"简单防范:不信任用户输入的数据,保证用户的输入必须经过检查。目前很多成熟的web框架都支持ORM服务,而且大部分基本都是防止SQL注入的。2、XSS(Cross-SiteScripting)XSS也很容易将恶意代码植入网页,对浏览网页的用户造成干扰。常见的重灾区包括BBS、留言板等,其实XSS的概念很简单。创建一些恶意网址、恶意图片网址或通过表单输入将JavsScript代码注入HTML,当用户浏览页面时会被触发。简单的预防方法:不信任用户输入的任何数据,对所有输入内容进行编码过滤。3.CSRFCSRF跨站请求伪造又称一键攻击或会话骑马,通常简称为CSRF或XSRF。一种对已登录的Web应用程序执行意外操作的攻击方法。举个例子:如果某银行进行转账操作的URL地址为:http://www.examplebank.com/withdraw?account=AccoutName&amount=10000&for=PayeeName,那么恶意攻击者就可以在上面放置如下代码另一个网站:如果用户的登录信息没有过期,他将损失10000元。简单注意事项:(1)检查Referer头域。这是一种比较基础的验证方法。通常,HTTP标头中有一个Referer字段。它的值应该和请求位置在同一个域下,所以你可以验证URL是否相同。验证不是恶意请求,但可能是伪造的。(2)添加验证token现在很多web框架都提供了将服务器产生的随机验证CSRF添加到表单中的代码,可以帮助防止CSRF攻击。4.DoSDoS攻击分为带宽消耗和资源消耗两种。两者都是利用大量合法或伪造的请求消耗大量的网络和硬件资源,达到瘫痪网络和系统的目的。带宽消耗分为分布式拒绝服务攻击和放大攻击:分布式拒绝服务攻击的特点是利用僵尸网络向受害者的服务器发送大量流量,以占用其带宽为目的。放大攻击类似于分布式拒绝服务攻击,通过恶意放大流量来限制受害系统的带宽;其特点是利用僵尸网络通过伪造的源IP(即攻击目标)向一些易受攻击的服务器发送请求。处理请求后,将响应数据包发送到伪造的源IP。由于这些服务的特殊性,响应数据包比请求数据包大,因此仅需占用少量带宽即可使服务器向目标主机传输大量响应。资源消耗类型分为协议分析攻击(SYNFlood)、LAND攻击、CC攻击、僵尸网络攻击、应用级泛洪攻击(Applicationlevelfloods)等。简单的预防措施:防火墙设置规则来阻止简单的攻击。大多数交换机都具有访问控制功能。大多数路由器都具有访问控制功能。两者都允许用户将文件上传到服务器。由于我们不知道用户会上传什么类型的文件,稍不注意就会出大问题。简单的防范措施:(1)防止非法文件上传,设置文件名白名单,判断文件头(2)防止非法文件执行,存储目录与web应用分离,无执行权限,文件重命名和图片压缩(3)加密security6.加密与安全大多数网站都会提供会员注册的功能,所以要注意不要将密码明文存储在数据库中。如果您登录的网站找回了密码,并且找回密码功能会在您忘记密码时将密码明文发送到您的邮箱,那么该网站很可能没有加密或者使用了可逆加密算法。这时候你的密码就很容易出现在“我的密码没有加密”(http://plainpass.com/)网站上。但是,即使密码被加密,也未必安全。网上有大量的破解网站(http://www.cmd5.com/),使用彩虹表可以破解加密后的密码。因此,一般用于不同的用户,在随机生成的salt字符串中加盐,然后进行加密,以提高密码的健壮性。sha3(salt+gap+password)简单入侵流程:侦察(Reconnaissance)攻击者准备攻击前进行的调查行为,利用搜索引擎或社会工程学的方法寻找目标的相关信息,便于后续的攻击扫描(Scanning)扫描目标主机服务器的弱点,获取服务器的操作系统、服务、运行状况等相关信息。入侵痕迹一目了然总结随着网络技术的发展,信息安全将变得越来越重要。/blob/master/security-checklist.md)检查您忽略了哪些安全项目。