原作者charlee、原始链接
http://tech.idv2.com/2008/04/19/secure-website-checklist/
<!---->
<script type="text/javascript"><!----></script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
<script> window.google_render_ad(); </script>
<!---->
fcicq最近在IPA上看到一篇安全相关的文章,它的最末尾有个checklist,于是催我把它翻译了。前几天比较忙,周末没什么事儿了,就翻译一下吧。
原文的标题是如何让网站更安全。这里仅翻译文章最后的一个checklist。
2008/4/20更新:fcicq倒是神速啊,马上就把具体的应用策略扔出来了
参考:PHP 实践 Security Checklist
标有 (*) 的检查项目表示该项是针对相关问题的根本解决方法,应当尽最大努力去完成这些内容。未标 (*) 的项目,表示该项并不能完全消除安全隐患,只是说通过这种方法可以避免发生安全问题。最后一条似乎没什么意思,不翻译了。
- SQL注射
- (*) 在组合SQL语句时要使用SQL变量绑定功能
- (*) 如果数据库不提供变量绑定,那么需要对构成SQL的所有变量进行转义
- 不要将错误信息原封不动地显示在浏览器中。
- 为访问数据库的用户设置适当的权限。
操作系统命令行注射
- (*) 避免使用能启动shell命令的语言
- 使用的语言如果允许启动shell命令,则需要对该功能的参数种的所有变量进行检查,确保只包含合法的操作
不检查路径名参数/目录遍历
- (*) 不要将外部传进来的参数直接作为文件名来使用
- (*) 将打开文件的操作限制在固定的目录中,并禁止文件名中包含路径
- 为Web服务器上的文件设置正确的访问权限
- 检查文件名
会话管理的问题
- (*) 用难以推测的内容作为会话ID
- (*) 不要在URL中保存会话ID
- (*) 为https协议中使用的cookie设置secure属性
- (*) 登录成功后生成新的会话
- (*) 登录成功后,在会话ID之外再生成一个秘密信息,每次访问页面时都检查之
- 不使用固定值作为会话ID
- 将会话ID保存到Cookie中时,要设置有效期限
跨站脚本攻击(XSS)
- 不允许输入HTML内容时的解决方法
- (*) 输出到页面上的所有内容都要转义
- (*) 输出URL时仅允许以“http://”或“https://”开头的URL
- (*) 不要动态生成<script>...</script>的内容
- (*) 不要从外部网站读入样式表
- 检查输入内容
允许输入HTML内容时的解决方法
- (*) 解析输入的HTML内容,生成解析树,然后提取其中的非脚本部分
- 使用脚本删除输入的HTML内容中的相关字符串
通用解决方法
- (*) 应答的HTTP头重指定Content-Type的charset属性
- 为避免Cookie情报泄漏,应禁止Trace方法,并对所有Cookie设置HttpOnly属性
跨站请求伪造(CSRF)
- (*) 所有页面都通过POST来访问,在前一页面的hidden中随机生成一个信息,提交后的页面检查该信息,正确时才予以执行
- (*) 执行业务之前再次要求输入密码
- (*) 确认Referer是否正确,只有正确时才执行
- 执行重要操作时,向预先设置的邮件地址中发送邮件
HTTP头注射
- (*) 不直接输出HTTP头,而使用运行环境提供的头信息输出API
- (*) 无法使用API时,要禁止输入的头信息中的换行
- 删除所有外部输入中的换行
邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)
- (*) 不使用外部参数作为邮件头信息
- 必须用外部参数设置头信息时,要删除其中的危险字符。
分享到:
相关推荐
金融科技SDL(安全开发生命周期)安全设计checklist是一份针对金融行业在软件开发生命周期中实施安全设计与编码实践的详细指导文档。这份清单强调了在金融科技应用开发中确保代码安全的各个方面,特别关注于减少和...
金融科技SDL安全设计Checklist,可根据改检测表进行整个WEB安全开发进行标准规范!
主要是针对金融交易方面的业务安全做的一个checklist,不包括通常意义上的Web安全如:SQL注入等
信息安全加固的checklist,从绿盟的基线拿出来的,当然有些是错误的、还有些不准确等等,作为参考还是不错的。
应用系统安全自检checkList
一个安全测试的checklist 1. 不登录系统,直接输入登录后的页面的url是否可以访问 2. 不登录系统,直接输入下载文件的url是否可以下载,如输入http://url/download?name=file是否可以下载文件file
在网络安全日益重要的今天,"安全网站策略之_checklist"是一个非常关键的话题。这份资源,链接为,提供了一份详细的网站安全检查清单,旨在帮助网站管理员和开发者确保他们的在线资产免受潜在威胁。标签"源码"和...
标书全流程checklist 启动投标 制作标书 标书封装
寿险webapp类安全检查checklist.xlsx
SDL安全设计Checklist是金融科技SDL安全设计的重要组成部分,旨在指导开发人员、运维人员在软件开发过程中进行安全设计和安全编码。该Checklist涵盖了软件开发生命周期中的各个阶段,包括需求、设计、编码实现、测试...
此外,它还提供权限管理,确保敏感信息的安全性。 4. 报告与统计:Checklist可生成详细的测试报告,包括通过率、失败原因分析等,帮助团队了解测试进度和质量状况。这些报告有助于管理层做出决策,优化测试策略。 ...
"各阶段的checklist" 提供了一种系统化的方法,通过各个阶段的检查清单来确保软件项目在不同阶段的代码质量、测试覆盖和文档完整性。以下是对这个主题的详细阐述: 一、需求分析阶段 在项目启动时,清晰、准确的...
### 转系统测试Checklist知识点详解 #### 一、转系统测试Checklist概述 转系统测试Checklist是一份用于确保软件从开发阶段顺利过渡到系统测试阶段的清单。这份清单帮助团队确认所有必要的准备工作已经完成,从而...
Flex CheckList 多选组建
DESKTOP APPLICATION SECURITY CHECKLIST
web各种常见测试点综合如功能测试、性能测试、接口测试、兼容测试、安全测试、用户体验_可用性测试等测试要点,整合一个表
5. 相关工具/资源:文档列出了网络安全应急响应中常用的工具和资源,例如在线安全工具、安全论坛、应急响应资源汇总网站等,以便快速找到相关辅助信息。 6. 中间件/服务器日志默认存放位置:了解不同操作系统及...
硬件审查checklist,包含AC-DC原理图、PCB检查清单;DC-DC原理图、PCB检查清单;线性稳压设计原理图、PCB检查清单;时钟部分(晶振)、复位、总线、安规、EMI、可靠性等checklist
**jQuery Checklist** jQuery Checklist是一款基于jQuery的可定制化选择列表插件,用于创建美观、功能丰富的多选框列表。这个插件提供了丰富的自定义选项,包括样式、事件处理以及交互功能,使得在网页中实现复杂的...
"华为硬件PCB设计checklist" 华为硬件PCB设计checklist是一份用于投板前检查的文档,旨在确保PCB设计的正确性和可靠性。本文档涵盖了PCB设计的各个方面,包括PCB网表、外形图、器件布局、信号流、时钟器件布局、...