web项目开发安全规范

2018年02月20日 14:11 | 2062次浏览 作者原创 版权保护

1. 【强制】可被用户直接访问的功能必须进行权限控制校验。

说明: 防止没有做权限控制就可随意访问、操作别人的数据,比如查看、修改别人的订单。

2. 【强制】用户敏感数据禁止直接展示,必须对展示数据脱敏。

说明: 支付宝中查看个人手机号码会显示成:158****9119,隐藏中间 4 位,防止隐私泄露。

3. 【强制】用户输入的 SQL 参数严格使用参数绑定或者 METADATA 字段值限定,防止 SQL 注入,

禁止字符串拼接 SQL 访问数据库。

4. 【强制】用户请求传入的任何参数必须做有效性验证。

说明: 忽略参数校验可能导致:

4.1 page size 过大导致内存溢出

4.2 恶意 order by 导致数据库慢查询

4.3 正则输入源串拒绝服务 ReDOS

4.4  任意重定向

4.5 SQL 注入

4.6 Shell 注入

4.7  反序列化注入

5. 【强制】禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据

6. 【强制】表单、 AJAX 提交必须执行 CSRF 安全过滤。

说明: CSRF(Cross-site request forgery)跨站请求伪造是一类常见编程漏洞。对于存在 CSRF

漏洞的应用/网站,攻击者可以事先构造好 URL,只要受害者用户一访问,后台便在用户不知

情情况下对数据库中用户参数进行相应修改。

7. 【强制】 URL 外部重定向传入的目标地址必须执行白名单过滤。

正例

try {
if (com.alibaba.fasttext.sec.url.CheckSafeUrl
.getDefaultInstance().inWhiteList(targetUrl)){
response.sendRedirect(targetUrl);
}
} catch (IOException e) {
logger.error("Check returnURL error! targetURL=" + targetURL, e);
throw e;

8. 【强制】 Web 应用必须正确配置 Robots 文件,非 SEO URL 必须配置为禁止爬虫访问。

User-agent: * Disallow: /

9. 【强制】在使用平台资源,譬如短信、邮件、电话、下单、支付,必须实现正确的防重放限制,

如数量限制、疲劳度控制、验证码校验,避免被滥刷、资损。

说明: 如注册时发送验证码到手机,如果没有限制次数和频率,那么可以利用此功能骚扰到其

它用户,并造成短信平台资源浪费。

10.【推荐】发贴、评论、发送即时消息等用户生成内容的场景必须实现防刷、文本内容违禁词过

滤等风控策略。



小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/561.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程