web项目开发安全规范

来源:互联网 发布:什么是软件 编辑:程序博客网 时间:2024/06/07 17:23

转自V型知识库(http://www.vxzsk.com/85/cate.html)

1. 【强制】可被用户直接访问的功能必须进行权限控制校验。
说明: 防止没有做权限控制就可随意访问、操作别人的数据,比如查看、修改别人的订单。

(权限和角色绑定)


2. 【强制】用户敏感数据禁止直接展示,必须对展示数据脱敏。
说明: 支付宝中查看个人手机号码会显示成:158****9119,隐藏中间 4 位,防止隐私泄露。

(如果是get请求更要注意了,密码什么的前后端传递,最好使用Base64编码一下,要不有时右键查看网页源码都能看到)


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: /

什么是Robots文件:robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。Robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。robots.txt 是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。

什么是SEO:SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”!SEO是指通过对网站进行站内优化和修复(网站Web结构调整、网站内容建设、网站代码优化和编码等)和站外优化,从而提高网站的网站关键词排名以及公司产品的曝光度。通过搜索引擎查找信息是当今网民们寻找网上信息和资源的主要手段。而SEM,搜索引擎营销,就是根据用户使用搜索引擎的方式,利用用户检索信息的机会尽可能将营销信息传递给目标用户。在目前企业网站营销中,SOM(SEO+SEM)模式越来越显重要。


9. 【强制】在使用平台资源,譬如短信、邮件、电话、下单、支付,必须实现正确的防重放限制,
如数量限制、疲劳度控制、验证码校验,避免被滥刷、资损。
说明: 如注册时发送验证码到手机,如果没有限制次数和频率,那么可以利用此功能骚扰到其
它用户,并造成短信平台资源浪费。


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

阅读全文
0 0