Aru*_*ani 2 php security xss https session
我是PHP的新手,我不熟悉会话管理.我正在创建一个电子商务网站,所以我需要创建一个防黑客会话.为此,我搜索了很多关于如何防止会话劫持的信息.我读过的消息来源建议我在代码中包含这些函数:
\\some saying to use this
session_start();
session_regenerate_id(true);
\\some others saying to use this
session_start();
session_regenerate_id();
Run Code Online (Sandbox Code Playgroud)
...还要使用HTTPS/TLS.在另一个stackoverflow 文章中,我遇到了这些东西:
- 使用足够的随机输入来生成会话ID(请参阅session.entropy_file,session.entropy_length和session.hash_function)
- 使用HTTPS在传输过程中保护会话ID
- 将会话ID存储在cookie中,而不是存储在URL中,以避免通过Referer泄漏(请参阅session.use_only_cookies)
- 使用HttpOnly和Secure属性设置cookie以禁止通过JavaScript访问(如果是XSS漏洞)并禁止通过不安全通道进行传输(请参阅session.cookie_httponly和session.cookie_secure)
但我无法理解那些.这对我来说只是理论; 相反,我想要的是一些PHP代码做那些事情 - 或任何实现这些事情的网站,我可以看到的PHP代码和我们作为一个例子(理想情况下有一些解释与它一起).
小智 6
会话劫持 - 当有人知道您的会话标识号时,将其提供给服务器,例如,使用您的priveleges登录.
XSS - 跨站点脚本,它与严重过滤的表单相关联,允许坏人实现他们的javascript代码,例如,你仍然是cookie文件.它们是两种不同形式的攻击.
关于防止会话劫持一些提示:1)设置php.ini指令:
session.use_only_cookies = 1 -> for using only cookie based session ids
session.use_trans_sid = 0 -> disable showing PHPSESSID in browser url
Run Code Online (Sandbox Code Playgroud)
2)关于会议
session_start();// -> starts your session.
//Your browser will accept http header with session id and store it.
//You will be identified by this session id, usually PHPSESSID
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
GET / HTTP/1.1
Host: example.org
User-Agent: Mozilla Compatible (MSIE)
Accept: text/xml, image/png, image/jpeg, image/gif, */*
Cookie: PHPSESSID=1234
Run Code Online (Sandbox Code Playgroud)
会话开始时,您可以向php全局数组$ _SESSION提供任何数据,如
$_SESSION['var'] = 'abc';
Run Code Online (Sandbox Code Playgroud)
如果有人知道您的PHPSESSID,他可以将相同的http标头发送到服务器并开始使用它,就像他是你一样.
所以,避免它的最好方法是:
a)每次提供任何重要数据时都使用session_regenerate_id().它将删除旧的会话号并生成一个新的会话号.
b)保存$ _SESSION你的手指:ip地址和/或浏览器代理.如果他们不同,那么 - 不是你.例如:
session_start();
if (isset($_SESSION['HTTP_USER_AGENT']))
{
if ($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT']))
{
//some code
}
}
else
{
$_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
}
Run Code Online (Sandbox Code Playgroud)
c)使用SSL提供敏感数据.
希望,你会发现它很有用.
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |