享知行·思考:200亿的漏洞,程序猿你还好吗?

1月20日凌晨,拼多多被曝出现重大Bug,用户可领100元无门槛券,有效期一年,大量用户涌入“薅羊毛”,用户通过领取的优惠券充值上万元话费、囤积数十万Q币,网传200亿,官方宣称目前统计几千万。

程序猿也慢慢成为一个高危职业,200亿漏洞的程序猿,你还好吗?趁着这个机会和大家普及和分享一下常见的程序漏洞。

1.SQL注入攻击:指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

select * from AUTH_USER t where t.LOG_IN_NAME='' or 1=1 --' and  t.PASSWORD='gdd‘

解决方案:

PreparedStatement

采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可

Mybatis:

禁止使用where条件中使用${}传递变量,只能使用#{},like的时候用concat连接 。


2.数据夸权限

有些查看、修改、删除、新增接口通过id,直接操作,没有检查用户是否有权限,导致可以通过接口直接修改参数,直接查看、修改、删除别的用户的数据。甚至可以通过写脚本进行遍历所有的数据。

解决方案:

前后端增加签名设置,验证签名,可以防一些低端用户。厉害的黑客,会通过从网站js或者破解你的app,会找到你的加密方法,然后写脚本绕过你的签名验证。

后端服务增加权限判断,根据前台传过来的ID,当前登录用户是否有权限对数据进行操作。如果没有直接返回或者抛出异常,拥有权限才继续向下执行。


3.暴力破解

通过脚本代码,穷举密码进行破解用户密码

解决方案:

用户名密码登录,可增加图片验证码,如果用户名密码不匹配,需要删除服务器上的图片验证码,重新生成新的图片验证码,发送给客户端。为了用户体验可以通过用户登录错误次数来决定是否需要验证图片验证码(用户已经错误此时可以缓存到redis,错误次数可配置在diamond)

手机验证码登录,可以根据错误次数,删除服务器端的手机验证码,如果不删除,会被穷举破解。为了节省成本,可以用户输错3次(可灵活配置)之后,把服务器的图片验证码,防止暴力破解。


4.csrf 攻击

CSRF跨站点请求伪造(Cross—Site Request Forgery),攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

解决方案:

验证refer:CsrfFilter,全局控制所有请求,验证refer,增加白名单和黑名单的控制,防止误杀。

增加token验证:将token信息存放在服务器端和cookie中,但存在缺点,高手能很容易拿到token


5.钓鱼网站

钓鱼网站通常指伪装成其他网站,做的和,窃取用户提交的银行帐号、密码等私密信息的网站。

解决方案:

1.查验“可信网站”。

通过第三方网站身份诚信认证辨别网站的真实性。

2.核对网站域名

假冒网站一般和真实网站有细微区别,有疑问时要仔细辨别其不同之处

3.查询网站备案。

通过ICP备案可以查询网站的基本情况、网站拥有者的情况。

4.比较网站内容。

假冒网站上的字体样式不一致,并且模糊不清。

5.安全证书。

目前大型的电子商务网站都应用了可信证书类产品,这类网站的网址都是“https”开头的,如果发现不是“https”开头的,应谨慎对待。


6.短信轰炸

通过脚本代码,循环调用发送短信接口,对用户进行产生了骚扰,同时增加了短信的费用。

解决方案:

1.发送短信验证码之前,增加图片验证码,验证码也很有讲究,很多短信轰炸机已经使用了OCR技术对图片进行了识别。可以使用逻辑加减法,让用户输入结果,防短信轰炸机效果较好。

2.增加IP的限制,控制同一个IP,可发送的次数

3.针对同一个手机号也做限制,限制一分钟内,2小时内,一天内发送次数(次数可配置)


7.XSS攻击

 XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见于web应用程序中的计算机安全漏洞.XSS通过在用户端注入恶意的可运行脚本,若服务器端对用户输入不进行处理,直接将用户输入输出到浏览器,然后浏览器将会执行用户注入的脚本。

解决方案:

1.Filter 过滤脚本

200亿的漏洞,淋漓尽致的体现了人性的贪婪。如果这个世界,多一些白帽子,少一些黑灰产,大家都简单点,再简单点,世界才会变得更美好。200亿的漏洞,迟早有人为此买单,

你可能感兴趣的:(享知行·思考:200亿的漏洞,程序猿你还好吗?)