扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:IT专家网 2008年10月22日
关键字:
相信企业IT管理者十分关注如何保证企业网站安全?对于大型企业采用安全公司提供的网站安全服务,可以及时发现网络中的安全隐患;然而对于大多数中小企业而言,订制一套完整而详尽的网站安全体检报告显得十分必要。本文将介绍如何制作网站安全Checklist。
标有*的检查项目表示该项是针对相关问题的根本解决方法,应当尽最大努力去完成这些内容。未标*的项目,表示该项并不能完全消除安全隐患,只表示通过此方法可以避免发生安全问题。
SQL注射
*在组合SQL语句时要使用SQL变量绑定功能;
方法1:
REGISTRY
方法2:
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
方法3:
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
*如果数据库不提供变量绑定,那么需要对构成SQL的所有变量进行转义;
不要将错误信息显示在浏览器中;
为访问数据库的用户分配适当的权限。
例如:对 mysql 数据库中的user, db, host, tables_priv, columns_priv, procs_priv 表的一个或多个进行查询。
操作系统命令行注射
*避免使用能启动shell的操作语言
如果允许启动shell命令,则需要对该功能的参数种的所有变量进行检查,确保只包含合法的操作;
不检查路径名参数/目录遍历
*不要将外部传进来的参数直接作为文件名来使用;
*将打开文件的操作限制在固定的目录中,并禁止文件名中包含路径;
为Web服务器上的文件设置正确的访问权限;
检查文件名;
会话管理的问题
*不要设置常见或与身份相关的会话ID;
*不要在URL中保存会话ID;
*为HTTPS协议中使用的cookie设置secure属性;
*登录成功后生成新的会话;
* 登录成功后,在会话ID之外再生成一个密钥,每次访问页面时对其进行检查;
不使用固定值作为会话ID;
将会话ID保存到Cookie中时,要设置有效期限;
跨站脚本攻击(XSS)
不允许输入HTML内容时的解决方法:
*输出到页面上的所有内容都要转义;
*输出URL时仅允许以“http://”或“https://”开头的URL;
*不要动态生成的内容;
*不要从外部网站读入样式表;
检查输入内容;
允许输入HTML内容时的解决方法:
*解析输入的HTML内容,生成解析树,然后提取其中的非脚本部分;
使用脚本删除输入的HTML内容中的相关字符串;
通用解决方法:
*应答的HTTP头重指定Content-Type的charset属性;
为避免Cookie情报泄漏,应禁止Trace方法,并对所有Cookie设置HttpOnly属性;
跨站请求伪造(CSRF)
*所有页面都通过POST来访问,在前一页面的hidden中随机生成一个信息,提交后的页面检查该信息,正确时才予以执行;
*执行业务之前再次要求输入密码;
*确认Referer是否正确,只有正确时才执行;
执行重要操作时,向预先设置的邮件地址中发送邮件。
HTTP头注射
*不直接输出HTTP头,而使用运行环境提供的头信息输出API;
*无法使用API时,要禁止输入的头信息中的换行;
删除所有外部输入中的换行;
邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)
*不使用外部参数作为邮件头信息;
必须用外部参数设置头信息时,要删除其中的危险字符。
总结:企业网站安全防护是一个繁琐的工程,作为企业IT管理者,必须谨慎对待每一个微小的环节,营造良好Web安全环境。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者