制作安全网站的checklist
原作者charlee、原始链接 http://tech.idv2.com/2008/04/19/secure-website-checklist/
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属性
- 不允许输入HTML内容时的解决方法
- 跨站请求伪造(CSRF)
- (*) 所有页面都通过POST来访问,在前一页面的hidden中随机生成一个信息,提交后的页面检查该信息,正确时才予以执行
- (*) 执行业务之前再次要求输入密码
- (*) 确认Referer是否正确,只有正确时才执行
- 执行重要操作时,向预先设置的邮件地址中发送邮件
- HTTP头注射
- (*) 不直接输出HTTP头,而使用运行环境提供的头信息输出API
- (*) 无法使用API时,要禁止输入的头信息中的换行
- 删除所有外部输入中的换行
- 邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)
- (*) 不使用外部参数作为邮件头信息
- 必须用外部参数设置头信息时,要删除其中的危险字符。
制作安全网站的checklist相关推荐
- python制作一个教学网站_小白如何入门Python? 制作一个网站为例
首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式. 以你最终想制作一个网站为例.从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用 ...
- 网站做好后不能用手机浏览吗_企业几年前制作的网站大部分都应该被淘汰掉
企业几年前制作的网站大部分都应该被淘汰掉!因为已经不适应如今这个"移动网络"大潮的时代.这是一个属于手机等智能移动终端的时代.PC终端统治网络的时代已经一去不复返了,并且永远不可能 ...
- 搭建可视化网页的software package_网页制作与网站搭建步骤教程
原标题:网页制作与网站搭建步骤教程 现代建设网站,只需要一个鸣蝉建站系统的账号,注册一个账号直接用网站模板建站,基本上几十秒就可以做出网站的雏形,随后再添加相关的产品信息和内容,即可建成网站. 鸣蝉智 ...
- python自学网站有哪些-小白如何入门Python? 制作一个网站为例
首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式. 以你最终想制作一个网站为例.从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用 ...
- python可以制作网站吗_小白如何入门Python? 制作一个网站为例
首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式. 以你最终想制作一个网站为例.从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用 ...
- 实践任务1:利用 HBuilderX制作产品展示模块+实践任务2:利用 HBuilderX制作公司网站首页+实践任务3: 利用 HBuilderX制作公司网站首页实现固定侧边菜单
实践任务1:制作产品展示模块 创建一个产品展示product.html网页,在网页展示推荐产品的信息,包含产品图片.名称和规格说明,网页效果如图所示.本任务利用盒子模型来实现四个产品图的展示,使用盒子 ...
- 用CSS制作大背景网站,以及80个大背景图片网站。
用CSS制作大背景网站 As the monitor resolution and internet speed is advancing, it seems like more and more d ...
- 不懂代码如何制作公司网站—壹间网络
对于代码小白,想建设自己的网站真的是难如登天的一件事吗?其实一个基础网站的制作,真的没有多复杂.然而如何高性价比的制作一个网站,总是绕不开的话题,特别是小白不懂技术的话,接触一个陌生的东西会觉得一头雾 ...
- CRM后台管理系统:HTML+CSS+JavaScript制作企业网站后台管理系统模板网站(46个页面)
CRM后台管理系统:HTML+CSS+JavaScript制作企业网站后台管理系统模板网站(46个页面) 一款使用Bootstrap构建,多个主页版本的企业网站后台管理系统,咨询管理,数据统计后台管理 ...
最新文章
- 2021全球抗体亲和力预测大赛来了!
- 操作系统学习:Linux0.12初始化详细流程-首个子进程
- 将表达式转换成逆波兰式
- 分布式与人工智能课程(part6)--第六课
- ASP.NET Core 借助 K8S 玩转容器编排
- 前端学习(1911)vue之电商管理系统电商系统之完成用户的修改弹框询问用户是否删除
- 如何能能够学好软件编程技术
- Kubernetes Pod入门指南
- 海康威视、大华监控摄像头rtsp地址规则
- HRBUST1754 Minimum Scalar Product【序列处理】
- 微信小程序微商城(二):电商首页轮播、分类导航和新品特卖实现
- 微信网页开发之授权登录(java实现)
- 极目智能完成2亿元C1轮融资,已获多个乘用车ADAS项目定点
- ffmpeg命令行将ts转码为mp4
- 怎样把计算机网络共享给手机,怎么把电脑的网络通过USB共享给手机?
- 面对全面收紧外链的微信,H5的春风还能吹多久?
- python画公主_【图片】来几张公主的手绘【勇敢的公主吧】_百度贴吧
- 微信h5小游戏作品欣赏:详解微信h5如何制作
- 计算机圣诞节教案,圣诞节教案范文
- android GPS 定位
热门文章
- linux pcre-devel,ubuntu - 我应该为'pcre-devel'安装什么软件包? - Ubuntu问答
- 1、使用库函数计算两个向量的夹角
- C++:随笔3--复杂的数据结构
- Tensorflow中的mnist例子
- python绝对路径的区别_python学习:绝对路径和相对路径
- python映射类型有哪些_什么是python中唯一的映射类型
- 算法时间复杂度求解法【详细过程说明】
- 如何安装蓝湖插件支持Photoshop CC 2017
- LTE Paging消息的接收
- Go 分布式学习利器(16) -- go中可复用的package构建