数码资讯
劫持和防止PHP会话的方法
会话数据曝光 会话数据通常包含一些个人信息和其它敏感数据。为此,会话数据的曝光是一个共同关注的问题,在一般情况下,照射范围不是很大,因为会话数据存储在服务器环境中,而不是在一个数据库或文件系统。因此,会话数据自然是不暴露。 使用SSL是一种特别有效的办法来减少暴露的可能性,当数据在服务器和客户端之间
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
会话数据曝光
会话数据通常包含一些个人信息和其它敏感数据。为此,会话数据的曝光是一个共同关注的问题,在一般情况下,照射范围不是很大,因为会话数据存储在服务器环境中,而不是在一个数据库或文件系统。因此,会话数据自然是不暴露。
使用SSL是一种特别有效的办法来减少暴露的可能性,当数据在服务器和客户端之间传送。这对于敏感data.ssl应用是非常重要的提供了一个保护层,HTTP,HTTP请求和响应的数据保护。
如果您关心会话数据存储区本身的安全性,您可以加密会话数据,以便没有正确的密钥可以读取其内容。你只是用session_set_save_handler()和自己写的会话加密存储和解密读取处理功能。
会话劫持
会话的最常见的攻击是会话劫持。它是所有攻击者可以使用其他人的谈话方式的总称。所有这些方式的第一步是获得一个合法的会话标识伪装成合法用户,所以它是保证会话的身份不被泄露非常重要。会话暴露和固定以前的知识可以帮助你确保会话的身份可以由服务器和合法用户只知道。
深度预防原则可用于会话中。当会话标识符是不幸的,它将为一些不显眼的安全措施提供一些保护。作为一名安全开发人员,您的目标应该是使上述伪装过程更加复杂。记住,无论屏障有多小,您都将为应用程序提供保护。
使伪装过程更加复杂的关键是加强验证。会话识别是验证的第一种方法,您可以用其他数据来补充它。所有您可以使用的数据只在每个HTTP请求中都是数据:
获取1.1
主持人:example.
用户代理:Firefox 1
接受:文本/ HTML,图像,图像,JPEG,图像
饼干:PHPSESSID = 1234
你应该意识到要求的一致性和不一致的行为视为可疑的行为。例如,尽管用户代理头(浏览器类型请求的请求)是可选的,但只要将头浏览器不改变它的值。如果1234个用户会话的身份已登录后使用Mozilla Firfox浏览器,它突然变成了IE,这是值得怀疑的。例如,在这个时候你可以使用要求输入密码来降低风险,而在错误的信息,这也会对合法用户的影响不大。你可以使用下面的代码检查用户代理的一致性:
复制代码代码如下所示:
< PHP
session_start();
如果(isset($ _session { 'http_user_agent ' }))
{
如果($ _session { 'http_user_agent}!= MD5($ _server { 'http_user_agent ' }))
{
提示密码
出口;
}
}
其他的
{
_session美元{ 'http_user_agent} = MD5($ _server { 'http_user_agent});
}
>
我注意到,在IE浏览器的某些版本中,访问网页和刷新网页的用户发出的接收头信息是不同的,因此不能用接受头判断一致性。
确保用户代理标头信息的一致性确实是有效的,但如果会话标识符是通过cookie,这是合理的假设,如果一个攻击者可以得到一个会话识别,他还可以得到其他HTTP头。由于Cookie暴露与浏览器的漏洞和XSS漏洞有关,受害者需要访问攻击者网站揭露所有的头信息。所有的攻击者所要做的就是重建的头以防止任何考试的头信息的一致性。
一个更好的方法是在URL中生成一个标记,它可以被看作是第二种验证形式(甚至更弱):
复制代码代码如下所示:
< PHP
$ =数组();
数组();
{ } =美元'token URL的rawurlencode($标记);
html { } =美元'token htmlentities($url { 'token},ent_quotes,'utf-8);
>
> Click Here
为了更容易地管理这个过程,您可以将整个请求放在一个变量中。
标签需要包含不可预知的内容,即使攻击者知道受害者浏览器发送的HTTP头的所有信息都不是:
复制代码代码如下所示:
< PHP
$字符串_server美元'http_user_agent'} {;
$字符串'shiflett;
$ = MD5($字符串);
_session美元{ 'token} = $标记;
>
当你使用一个随机字符串(如夏夫利特),对其进行预测是不现实的。在这一点上,捕获标记会比预测标志物更方便。通过标记在URL传递会话标识符的饼干,我们需要抓住他们俩在同一时间。这样,除非攻击者可以看到受害者发送到您的应用程序的所有HTTP请求的原始信息,这将是好的,因为在这种情况下,所有的内容接触。这样的攻击是非常困难的(很少见)防止使用SSL。
有专家警告,不要依赖检查user-agent.this一致性是因为在集群服务器的HTTP代理服务器将编辑的用户代理,并在这一组的多个代理服务器可能不一致时,编辑的价值。如果你不想依靠检查user-agent.you一致可以生成一个随机的标志:
复制代码代码如下所示:
< PHP
$令牌= MD5(uniqid(RAND(),真的));
_session美元{ 'token} = $标记;
>
这种方法的安全性较弱,但更可靠,这两种方法提供了一种防止会话劫持的强大手段,您需要做的就是在安全性和可靠性之间取得平衡。
会话数据通常包含一些个人信息和其它敏感数据。为此,会话数据的曝光是一个共同关注的问题,在一般情况下,照射范围不是很大,因为会话数据存储在服务器环境中,而不是在一个数据库或文件系统。因此,会话数据自然是不暴露。
使用SSL是一种特别有效的办法来减少暴露的可能性,当数据在服务器和客户端之间传送。这对于敏感data.ssl应用是非常重要的提供了一个保护层,HTTP,HTTP请求和响应的数据保护。
如果您关心会话数据存储区本身的安全性,您可以加密会话数据,以便没有正确的密钥可以读取其内容。你只是用session_set_save_handler()和自己写的会话加密存储和解密读取处理功能。
会话劫持
会话的最常见的攻击是会话劫持。它是所有攻击者可以使用其他人的谈话方式的总称。所有这些方式的第一步是获得一个合法的会话标识伪装成合法用户,所以它是保证会话的身份不被泄露非常重要。会话暴露和固定以前的知识可以帮助你确保会话的身份可以由服务器和合法用户只知道。
深度预防原则可用于会话中。当会话标识符是不幸的,它将为一些不显眼的安全措施提供一些保护。作为一名安全开发人员,您的目标应该是使上述伪装过程更加复杂。记住,无论屏障有多小,您都将为应用程序提供保护。
使伪装过程更加复杂的关键是加强验证。会话识别是验证的第一种方法,您可以用其他数据来补充它。所有您可以使用的数据只在每个HTTP请求中都是数据:
获取1.1
主持人:example.
用户代理:Firefox 1
接受:文本/ HTML,图像,图像,JPEG,图像
饼干:PHPSESSID = 1234
你应该意识到要求的一致性和不一致的行为视为可疑的行为。例如,尽管用户代理头(浏览器类型请求的请求)是可选的,但只要将头浏览器不改变它的值。如果1234个用户会话的身份已登录后使用Mozilla Firfox浏览器,它突然变成了IE,这是值得怀疑的。例如,在这个时候你可以使用要求输入密码来降低风险,而在错误的信息,这也会对合法用户的影响不大。你可以使用下面的代码检查用户代理的一致性:
复制代码代码如下所示:
< PHP
session_start();
如果(isset($ _session { 'http_user_agent ' }))
{
如果($ _session { 'http_user_agent}!= MD5($ _server { 'http_user_agent ' }))
{
提示密码
出口;
}
}
其他的
{
_session美元{ 'http_user_agent} = MD5($ _server { 'http_user_agent});
}
>
我注意到,在IE浏览器的某些版本中,访问网页和刷新网页的用户发出的接收头信息是不同的,因此不能用接受头判断一致性。
确保用户代理标头信息的一致性确实是有效的,但如果会话标识符是通过cookie,这是合理的假设,如果一个攻击者可以得到一个会话识别,他还可以得到其他HTTP头。由于Cookie暴露与浏览器的漏洞和XSS漏洞有关,受害者需要访问攻击者网站揭露所有的头信息。所有的攻击者所要做的就是重建的头以防止任何考试的头信息的一致性。
一个更好的方法是在URL中生成一个标记,它可以被看作是第二种验证形式(甚至更弱):
复制代码代码如下所示:
< PHP
$ =数组();
数组();
{ } =美元'token URL的rawurlencode($标记);
html { } =美元'token htmlentities($url { 'token},ent_quotes,'utf-8);
>
> Click Here
为了更容易地管理这个过程,您可以将整个请求放在一个变量中。
标签需要包含不可预知的内容,即使攻击者知道受害者浏览器发送的HTTP头的所有信息都不是:
复制代码代码如下所示:
< PHP
$字符串_server美元'http_user_agent'} {;
$字符串'shiflett;
$ = MD5($字符串);
_session美元{ 'token} = $标记;
>
当你使用一个随机字符串(如夏夫利特),对其进行预测是不现实的。在这一点上,捕获标记会比预测标志物更方便。通过标记在URL传递会话标识符的饼干,我们需要抓住他们俩在同一时间。这样,除非攻击者可以看到受害者发送到您的应用程序的所有HTTP请求的原始信息,这将是好的,因为在这种情况下,所有的内容接触。这样的攻击是非常困难的(很少见)防止使用SSL。
有专家警告,不要依赖检查user-agent.this一致性是因为在集群服务器的HTTP代理服务器将编辑的用户代理,并在这一组的多个代理服务器可能不一致时,编辑的价值。如果你不想依靠检查user-agent.you一致可以生成一个随机的标志:
复制代码代码如下所示:
< PHP
$令牌= MD5(uniqid(RAND(),真的));
_session美元{ 'token} = $标记;
>
这种方法的安全性较弱,但更可靠,这两种方法提供了一种防止会话劫持的强大手段,您需要做的就是在安全性和可靠性之间取得平衡。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。