原作者charlee、原始链接 http://tech.idv2.com/2008/04/19/secure-website-checklist/

fcicq最近在IPA上看到一篇安全相关的文章,它的最末尾有个checklist,于是催我把它翻译了。前几天比较忙,周末没什么事儿了,就翻译一下吧。

原文的标题是如何让网站更安全。这里仅翻译文章最后的一个checklist。

2008/4/20更新:fcicq倒是神速啊,马上就把具体的应用策略扔出来了

参考:PHP 实践 Security Checklist

标有 (*) 的检查项目表示该项是针对相关问题的根本解决方法,应当尽最大努力去完成这些内容。未标 (*) 的项目,表示该项并不能完全消除安全隐患,只是说通过这种方法可以避免发生安全问题。最后一条似乎没什么意思,不翻译了。

  1. SQL注射

    1. (*) 在组合SQL语句时要使用SQL变量绑定功能
    2. (*) 如果数据库不提供变量绑定,那么需要对构成SQL的所有变量进行转义
    3. 不要将错误信息原封不动地显示在浏览器中。
    4. 为访问数据库的用户设置适当的权限。
  2. 操作系统命令行注射
    1. (*) 避免使用能启动shell命令的语言
    2. 使用的语言如果允许启动shell命令,则需要对该功能的参数种的所有变量进行检查,确保只包含合法的操作
  3. 不检查路径名参数/目录遍历
    1. (*) 不要将外部传进来的参数直接作为文件名来使用
    2. (*) 将打开文件的操作限制在固定的目录中,并禁止文件名中包含路径
    3. 为Web服务器上的文件设置正确的访问权限
    4. 检查文件名
  4. 会话管理的问题
    1. (*) 用难以推测的内容作为会话ID
    2. (*) 不要在URL中保存会话ID
    3. (*) 为https协议中使用的cookie设置secure属性
    4. (*) 登录成功后生成新的会话
    5. (*) 登录成功后,在会话ID之外再生成一个秘密信息,每次访问页面时都检查之
    6. 不使用固定值作为会话ID
    7. 将会话ID保存到Cookie中时,要设置有效期限
  5. 跨站脚本攻击(XSS)
    • 不允许输入HTML内容时的解决方法

      1. (*) 输出到页面上的所有内容都要转义
      2. (*) 输出URL时仅允许以“http://”或“https://”开头的URL
      3. (*) 不要动态生成<script>...</script>的内容
      4. (*) 不要从外部网站读入样式表
      5. 检查输入内容
    • 允许输入HTML内容时的解决方法
      1. (*) 解析输入的HTML内容,生成解析树,然后提取其中的非脚本部分
      2. 使用脚本删除输入的HTML内容中的相关字符串
    • 通用解决方法
      1. (*) 应答的HTTP头重指定Content-Type的charset属性
      2. 为避免Cookie情报泄漏,应禁止Trace方法,并对所有Cookie设置HttpOnly属性
  6. 跨站请求伪造(CSRF)
    1. (*) 所有页面都通过POST来访问,在前一页面的hidden中随机生成一个信息,提交后的页面检查该信息,正确时才予以执行
    2. (*) 执行业务之前再次要求输入密码
    3. (*) 确认Referer是否正确,只有正确时才执行
    4. 执行重要操作时,向预先设置的邮件地址中发送邮件
  7. HTTP头注射
    1. (*) 不直接输出HTTP头,而使用运行环境提供的头信息输出API
    2. (*) 无法使用API时,要禁止输入的头信息中的换行
    3. 删除所有外部输入中的换行
  8. 邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)
    1. (*) 不使用外部参数作为邮件头信息
    2. 必须用外部参数设置头信息时,要删除其中的危险字符。

制作安全网站的checklist相关推荐

  1. python制作一个教学网站_小白如何入门Python? 制作一个网站为例

    首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式. 以你最终想制作一个网站为例.从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用 ...

  2. 网站做好后不能用手机浏览吗_企业几年前制作的网站大部分都应该被淘汰掉

    企业几年前制作的网站大部分都应该被淘汰掉!因为已经不适应如今这个"移动网络"大潮的时代.这是一个属于手机等智能移动终端的时代.PC终端统治网络的时代已经一去不复返了,并且永远不可能 ...

  3. 搭建可视化网页的software package_网页制作与网站搭建步骤教程

    原标题:网页制作与网站搭建步骤教程 现代建设网站,只需要一个鸣蝉建站系统的账号,注册一个账号直接用网站模板建站,基本上几十秒就可以做出网站的雏形,随后再添加相关的产品信息和内容,即可建成网站. 鸣蝉智 ...

  4. python自学网站有哪些-小白如何入门Python? 制作一个网站为例

    首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式. 以你最终想制作一个网站为例.从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用 ...

  5. python可以制作网站吗_小白如何入门Python? 制作一个网站为例

    首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式. 以你最终想制作一个网站为例.从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用 ...

  6. 实践任务1:利用 HBuilderX制作产品展示模块+实践任务2:利用 HBuilderX制作公司网站首页+实践任务3: 利用 HBuilderX制作公司网站首页实现固定侧边菜单

    实践任务1:制作产品展示模块 创建一个产品展示product.html网页,在网页展示推荐产品的信息,包含产品图片.名称和规格说明,网页效果如图所示.本任务利用盒子模型来实现四个产品图的展示,使用盒子 ...

  7. 用CSS制作大背景网站,以及80个大背景图片网站。

    用CSS制作大背景网站 As the monitor resolution and internet speed is advancing, it seems like more and more d ...

  8. 不懂代码如何制作公司网站—壹间网络

    对于代码小白,想建设自己的网站真的是难如登天的一件事吗?其实一个基础网站的制作,真的没有多复杂.然而如何高性价比的制作一个网站,总是绕不开的话题,特别是小白不懂技术的话,接触一个陌生的东西会觉得一头雾 ...

  9. CRM后台管理系统:HTML+CSS+JavaScript制作企业网站后台管理系统模板网站(46个页面)

    CRM后台管理系统:HTML+CSS+JavaScript制作企业网站后台管理系统模板网站(46个页面) 一款使用Bootstrap构建,多个主页版本的企业网站后台管理系统,咨询管理,数据统计后台管理 ...

最新文章

  1. 2021全球抗体亲和力预测大赛来了!
  2. 操作系统学习:Linux0.12初始化详细流程-首个子进程
  3. 将表达式转换成逆波兰式
  4. 分布式与人工智能课程(part6)--第六课
  5. ASP.NET Core 借助 K8S 玩转容器编排
  6. 前端学习(1911)vue之电商管理系统电商系统之完成用户的修改弹框询问用户是否删除
  7. 如何能能够学好软件编程技术
  8. Kubernetes Pod入门指南
  9. 海康威视、大华监控摄像头rtsp地址规则
  10. HRBUST1754 Minimum Scalar Product【序列处理】
  11. 微信小程序微商城(二):电商首页轮播、分类导航和新品特卖实现
  12. 微信网页开发之授权登录(java实现)
  13. 极目智能完成2亿元C1轮融资,已获多个乘用车ADAS项目定点
  14. ffmpeg命令行将ts转码为mp4
  15. 怎样把计算机网络共享给手机,怎么把电脑的网络通过USB共享给手机?
  16. 面对全面收紧外链的微信,H5的春风还能吹多久?
  17. python画公主_【图片】来几张公主的手绘【勇敢的公主吧】_百度贴吧
  18. 微信h5小游戏作品欣赏:详解微信h5如何制作
  19. 计算机圣诞节教案,圣诞节教案范文
  20. android GPS 定位

热门文章

  1. linux pcre-devel,ubuntu - 我应该为'pcre-devel'安装什么软件包? - Ubuntu问答
  2. 1、使用库函数计算两个向量的夹角
  3. C++:随笔3--复杂的数据结构
  4. Tensorflow中的mnist例子
  5. python绝对路径的区别_python学习:绝对路径和相对路径
  6. python映射类型有哪些_什么是python中唯一的映射类型
  7. 算法时间复杂度求解法【详细过程说明】
  8. 如何安装蓝湖插件支持Photoshop CC 2017
  9. LTE Paging消息的接收
  10. Go 分布式学习利器(16) -- go中可复用的package构建