思步网

标题: 网站代码安全事项 [打印本页]

作者: step365he    时间: 2008-5-20 14:20
标题: 网站代码安全事项
网站代码安全事项
一. 对跨越站点的脚本攻击的简单防范:
1.控制好权限,尽可能的降低权限。
2.过滤或转换用户提交数据中的HTML代码。使用HtmlEncode 方法对自于用户输入、数据库或本地文件进行处理;UrlEncode 对 URL 字符串进行编码。
3.必须确保来自查询字符串、窗体字段和 cookie 的输入对于应用来说是合法的。将所有的用户输入都认为可能是恶意的,筛选或者清理下游代码的上下文。验证所有的输入是否为已知的有效值,然后拒绝其他所有 的输入。用正则表达式验证通过 HTML 窗体字段、cookie 和查询字符串而接收到的输入数据。
4.限制用户提交数据的长度(验证输入)。
二。防止SQL注入
1. 强制测试输入的长度和数据类型,有助于防止恶意造成的缓冲区溢出漏洞。
2. 测试输入内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入,防止某些缓冲区溢出攻击。
3. 使用 XML时,根据数据的架构对输入的所有数据强制进行验证。
4. 绝不直接使用用户输入内容来拼凑SQL语句。可以使用用户输入内容做为动态SQL语句
5. 坚持使用存储过程来验证用户输入
6.在多层环境中,所有数据都应该在验证之后才允许进入可信区域
7.限制网站应用或者网页只能执行拥有执行存储过程的权限,不能直接读写SQL表和视图。同时刪除不必要的系統的存储过程,另外加上数据库操作日志。
三:防止假冒Referer
四:不用GET,而用POST
五:服务器不能接受用户上传的文件名
六:防止CC攻击,可以启用IP验证或session验证
作者: step365he    时间: 2008-5-28 20:59
1.如何验证输入——
是否清楚入口点
是否清楚信任边界
是否验证Web页输入
是否对传递到组件或Web服务的参数进行验证
是否验证从数据库中检索的数据
是否将方法集中起来
是否依赖客户端的验证
应用程序是否易受SQL注入攻击
应用程序是否易受XSS攻击
如何处理输入
2.身份验证——
是否区分公共访问和受限访问
是否明确服务帐户要求
如何验证调用者身份
如何验证数据库的身份
是否强制试用帐户管理措施
3.授权——
如何向最终用户授权
如何在数据库中授权应用程序
如何将访问限定于系统级资源
4.配置管理——
是否支持远程管理
是否保证配置存储的安全
是否隔离管理员特权
5.敏感数据——
是否存储机密信息
如何存储敏感数据
是否在网络中传递敏感数据
是否记录敏感数据
6.会话管理——
如何交换会话标识符
是否限制会话生存期
如何确保会话存储状态的安全
7.加密——
为何使用特定的算法
如何确保加密密钥的安全性
8.参数操作——
是否验证所有的输入参数
是否在参数过程中传递敏感数据
是否为了安全问题而使用HTTP头数据
9.异常管理——
是否使用结构化的异常处理
是否向客户端公开了太多的信息
10.审核和日志记录——
是否明确了要审核的活动
是否考虑如何流动原始调用这身份

大家看着上面一段话,是不是会头大?
我们可以用两句话来概括。
第一句话是
当数据跨越不可信任环境和可信任环境的边界时候,必须对其进行验证
第二句话是
最小权限原则
所以当程序员编写代码,或者需求分析人员分析权限功能的需求,或者设计人员设计软件架构时候,牢牢记住上面两句话,就可以覆盖了开头一堆啰嗦的语句,呵呵。
作者: 羚平杰    时间: 2013-3-12 16:30
支持楼主,用户楼主,楼主英明呀!!!
作者: aknustsdv    时间: 2013-5-25 15:01
还不错哦,如果再能多分享一些就perfect了!
作者: 斯达舒。    时间: 2014-4-20 07:29
顶不错 支持下
作者: 青冘    时间: 2014-9-10 09:45
很有见地的探讨,先收藏着~
作者: 心里向阳    时间: 2015-11-6 15:10
很有借鉴意义,先收藏了,谢谢楼主。
作者: 心慌ゞ    时间: 2016-3-23 11:31
看起来好像不错的样子
作者: 心宽何处不桃源    时间: 2016-5-2 08:24
打酱油的人拉,顺便赚点金币




欢迎光临 思步网 (http://www.step365.com/) Powered by Discuz! X3.2