PHP安全编程:会话数据注入 比会话劫持更强大的攻击(转)
2013-07-29 15:16
936 查看
一个与会话暴露类似的问题是会话注入。此类攻击是基于你的WEB服务器除了对会话存储目录有读取权限外,还有写入权限。因此,存在着编写一段允许其他用户添加,编辑或删除会话的脚本的可能。下例显示了一个允许用户方便地编辑已存在的会话数据的HTML表单:
脚本inject.php执行由表单所指定的修改:
此类攻击非常危险。攻击者不仅可以编辑你的用户的数据,还可以编辑他自己的会话数据。它比会话劫持更为强大,因为攻击者能选择所有的会话数据进行修改,从而使绕过访问限制和其他安全手段成为可能。
针对这个问题的最好解决方案是将会话数据保存在数据库中。
01 | <?php |
02 |
03 | session_start(); |
04 |
05 | ?> |
06 |
07 | <form action= "inject.php" method= "POST" > |
08 |
09 | <?php |
10 |
11 | $path = ini_get ( 'session.save_path' ); |
12 | $handle =dir( $path ); |
13 |
14 | while ( $filename = $handle ->read()) |
15 | { |
16 | if ( substr ( $filename ,0,5) == 'sess_' ) |
17 | { |
18 | $sess_data = file_get_contents ( "$path/$filename" ); |
19 |
20 | if (! empty ( $sess_data )) |
21 | { |
22 | session_decode( $sess_data ); |
23 | $sess_data = $_SESSION ; |
24 | $_SESSION = array (); |
25 |
26 | $sess_name = substr ( $filename ,5); |
27 | $sess_name =htmlentities( $sess_name ,ENT_QUOTES, 'UTF-8' ); |
28 | echo "<h1>Session [$sess_name]</h1>" ; |
29 |
30 | foreach ( $sess_data as $name => $value ) |
31 | { |
32 | $name =htmlentities( $name ,ENT_QUOTES, 'UTF-8' ); |
33 | $value =htmlentities( $value ,ENT_QUOTES, 'UTF-8' ); |
34 | echo "<p> |
35 | $name : |
36 | <input type=\"text\" |
37 | name=\"{ $sess_name }[{ $name }]\" |
38 | value=\" $value \" /> |
39 | </p>"; |
40 | } |
41 |
42 | echo '<br />' ; |
43 | } |
44 | } |
45 | } |
46 |
47 | $handle ->close(); |
48 |
49 | ?> |
50 |
51 | <input type= "submit" /> |
52 | </form> |
01 | <?php |
02 |
03 | session_start(); |
04 |
05 | $path = ini_get ( 'session.save_path' ); |
06 |
07 | foreach ( $_POST as $sess_name => $sess_data ) |
08 | { |
09 | $_SESSION = $sess_data ; |
10 | $sess_data =session_encode; |
11 |
12 | file_put_contents ( "$path/$sess_name" , $sess_data ); |
13 | } |
14 |
15 | $_SESSION = array (); |
16 |
17 | ?> |
针对这个问题的最好解决方案是将会话数据保存在数据库中。
相关文章推荐
- PHP安全编程:会话数据注入
- PHP安全编程:会话数据注入
- PHP安全编程之会话数据注入
- PHP安全编程:更优的会话数据安全 更好地防范session暴露(转)
- PHP安全编程:session劫持的防御session 数据暴露
- PHP安全编程:更优的会话数据安全
- PHP安全编程之文件包含的代码注入攻击
- php 安全基础 第八章 共享主机 会话注入
- PHP安全编程:表单与数据安全
- PHP安全编程:文件上传攻击的防御
- PHP安全编程:session固定获取合法会话
- PHP安全编程:密码嗅探与重播攻击
- php 安全基础 第八章 共享主机 会话数据暴露
- PHP安全编程:session劫持的防御
- PHP安全编程:暴力破解攻击
- PHP安全-会话注入
- php 编程下有效防止MySQL数据库注入攻击
- PHP安全编程:shell命令注入
- PHP安全-会话数据暴露(二)
- PHP安全编程之文件上传攻击的防御