少带来的负面影响。
如果一个会话在登录以前就建立,在成功登录以后,关闭该会话并创建一个新的会话。
在任何重新身份验证过程中建立一个新的会话标识符。
不允许同一用户 ID 的并发登录。
不要在 URL、错误信息或日志中暴露会话标识符。
会话标识符应当只出现在 HTTP cookie 头 信息中。
比如,不要将会话标识符以 GET 参数进行传递。
通过在服务器上使用恰当的访问控制,保护服务器端会话数据免受来自服务器其他用户的未 授权访问。
生成一个新的会话标识符并周期性地使旧会话标识符失效(这可以缓解那些原标识符被获得 的特定会话劫持情况)。
在身份验证的时候,如果连接从 HTTP 变为 HTTPS,则生成一个新的会话标识符。
在应用程 序中,推荐持续使用 HTTPS,而非在 HTTP 和 HTTPS 之间转换。
为服务器端的操作执行标准的会话管理,比如,通过在每个会话中使用强随机令牌或参数来 管理账户。
该方法可以用来防止跨站点请求伪造攻击。
通过在每个请求或每个会话中使用强随机令牌或参数,为高度敏感或关键的操作提供标准的 会话管理。
为在 TLS 连接上传输的 cookie 设置“安全”属性。
将 cookie 设置为 HttpOnly 属性,除非在应用程序中明确要求了客户端脚本程序读取或者设置 cookie 的值。
访问控制: 只使用可信系统对象(比如:服务器端会话对象)以做出访问授权的决定。
使用一个单独的全站点部件以检查访问授权。
这包括调用外部授权服务的库文件。
安全的处理访问控制失败的操作。
中文版 Version 1.0 7 2012 年 8 月 如果应用程序无法访问其安全配置信息,则拒绝所有的访问。
在每个请求中加强授权控制,包括:服务器端脚本产生的请求,“includes”和来自象 AJAX 和 FLASH 那样的富客户端技术的请求。
将有特权的逻辑从其他应用程序代码中隔离开。
限制只有授权的用户才能访问文件或其他资源,包括那些应用程序外部的直接控制。
限制只有授权的用户才能访问受保护的 URL。
限制只有授权的用户才能访问受保护的功能。
限制只有授权的用户才能访问直接对象引用。
限制只有授权的用户才能访问服务。
限制只有授权的用户才能访问应用程序数据。
限制通过使用访问控制来访问用户、数据属性和策略信息。
限制只有授权的用户才能访问与安全相关的配置信息。
服务器端执行的访问控制规则和表示层实施的访问控制规则必须匹配。
如果状态数据必须存储在客户端,使用加密算法,并在服务器端检查完整性以捕获状态的改 变。
强制应用程序逻辑流程遵照业务规则。
限制单一用户或设备在一段时间内可以执行的事务数量。
事务数量/时间应当高于实际的业务 需求,但也应该足够低以判定自动化攻击。
仅使用“referer”头作为补偿性质的检查,它永远不能被单独用来进行身份验证检查,因为它可 以被伪造。
如果长的身份验证会话被允许,周期性的重新验证用户的身份,以确保他们的权限没有改 变。
如果发生改变,注销该用户,并强制他们重新执行身份验证。
执行帐户审计并将没有使用的帐号强制失效(比如:在用户密码过期后的 30 天以内)。
应用程序必须支持帐户失效,并在帐户停止使用时终止会话(比如:角色、职务状况、业务 处理的改变,等等)。
服务帐户,或连接到或来自外部系统的帐号,应当只有尽可能小的权限。
建立一个“访问控制政策”以明确一个应用程序的业务规则、数据类型和身份验证的标准或处理 流程,确保访问可以被恰当的提供和控制。
这包括了为数据和系统资源确定访问需求。
加密规范: 所有用于保护来自应用程序用户秘密信息的加密功能都必须在一个可信系统(比如:服务 器)上执行。
保护主要秘密信息免受未授权的访问。
安全的处理加密模块失败的操作。
为防范对随机数据的猜测攻击,应当使用加密模块中已验证的随机数生成器生成所有的随机 数.
上一篇:
【精品】网络聊天室(CS)模式
下一篇:
【材料工艺】纳米晶镍镀层的制备及其界面扩散与结构