相关疑难解决方法(0)

如何在30分钟后使PHP会话到期?

我需要让会话保持30分钟,然后将其销毁.

php cookies session

1017
推荐指数
11
解决办法
93万
查看次数

PHP锁定了ip地址

我锁定了IP地址.

这是否意味着用户只能使用相同的IP地址登录?或者用户是否会注销并且必须重新登录才能获得新会话?

if (isset($_SESSION['last_ip']) === false) {
    $_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR']; 
}

if ($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']){
    session_unset();
    session_destroy();  
}
Run Code Online (Sandbox Code Playgroud)

php

22
推荐指数
2
解决办法
1880
查看次数

PHP会话劫持

我有一个关于PHP中会话劫持的问题.我今天早上一直在阅读这篇文章,我有一些问题在我阅读的文档中没有得到明确解答.

用户可以在我的网站上更改会话吗?即如果他们在登录时有X会话,他们是否可以将该会话更改为Y或Z,如果他们选择的话?

我认为这些会话是由浏览器设置的,并且它们无法更改,但所有这些会话劫持我一直在阅读的内容都让我产生了一些疑问.

php session

19
推荐指数
2
解决办法
3万
查看次数

Facebook等网站是否以cookie或会话形式登录用户?

像Facebook这样的网站存储在cookie(客户端)或会话(服务器端)中的用户?我的测试表明他们是第一个.

php cookies

8
推荐指数
3
解决办法
6246
查看次数

在会话变量中存储数据库连接

可能重复:
无法在php中的会话中传递mysqli连接

我们中的许多人编写了需要数据库的PHP应用程序; 主要是MySQL,但我经常使用非常小的MS Access数据库,因为技术能力较差的人可以下载调整它们/保存备份/等等.在他们自己(这是否正确,我不知道).

我注意到的是,花了很多时间来连接和运行一些相同的查询.因此,我有一个有趣的想法:存储连接和可能的结果集,这些结果集在$_SESSION变量中大部分是静态的,以减轻用户导航网站时的负担.

显然这样做需要很多考虑.在会话被销毁时关闭连接的事情只是一个开始.

我的问题归结为:这真的有可能吗?如果是这样,我应该注意哪些事情(除了会话固定,因为它是适用于所有会话的自身问题)?

php database session-variables

7
推荐指数
2
解决办法
2万
查看次数

会话注入?

我应该如何在会话中托管用户的ID?只是为了插入id?我的意思是(例如):

$_SESSION['id'] = 1;
Run Code Online (Sandbox Code Playgroud)

用户自己没有办法改变它(作为cookie ..)?因为如果是这样,他可以改为任何身份证.

还有一个问题 - 如何检查用户是否已登录(使用会话)?我创建了一个会话:

$_SESSION['is_logged_in'] = true;
Run Code Online (Sandbox Code Playgroud)

同样,用户不能只创建一个名为'is_logged_in'且其值为true的会话吗?或者只是服务器控制服务器的价值?

php security session

7
推荐指数
1
解决办法
1万
查看次数

对localhost进行简单的会话固定攻击以进行测试

我在读SO许多Q/A有关的会话固定/劫持,许多人建议改变风险php.ini就像指令session.use_only_cookiesON和别人的php.ini指令,以使服务器更安全...

如果我可以在基于PHP5 + Apache的localhost服务器上复制一个简单的攻击场景,我想看看我的眼睛.

在我的localhost session.use_only_cookiesOFF如此根据上面的q/a我的localhost基本上是不受保护的,这是我需要做的测试.

我第一次阅读这篇关于如何进行会话固定攻击的简单文章:

为了复制本文中描述的场景,我创建了两个非常简单的PHP脚本(代码如下),但攻击不起作用,这就是我所做的:

  1. (假装是Mallory)我对Alice说:"你好去访问http://localhost/login.php?PHPSESSID = mysessionid "

  2. 然后(假装是爱丽丝)我去了 http://localhost/login.php?PHPSESSID = mysessionid

  3. 作为我的localhost服务器的管理员,我看到在服务器磁盘上创建的会话(它被作为名称的文件被冻结sess_ mysessionid),所以我想:很酷,它正在工作!

  4. 然后(假装是Alice)我登录后输入"joe"作为凭证

  5. Alice登录并将她重定向到insession_ok.php,此时(根据上面的维基百科文章),Mallory也应该能够看到insession_ok.php因为他固定了会话mysessionid,但事实并非如此,因为当Alice登录新会话时在服务器上创建sess_vdshg238cnfb4vt7ahpnp1p522,所以我不明白Mallory应该如何固定/劫持会话,如文章中所解释的那样???


的login.php

<?php
session_start();

//if user credentials are ok, let's put him in session
if( @$_POST['usr'] === 'joe' )
   $_SESSION['in_session'] = TRUE;

//if user is already logged in, let's redirect him to the account page "insession_ok.php" …
Run Code Online (Sandbox Code Playgroud)

php apache session session-fixation

6
推荐指数
1
解决办法
3014
查看次数

登录之前是否生成了我的会话ID?

我在php手册中阅读了有关会话漏洞的信息,并遇到了以下问题:成功验证用户身份后,我需要我的服务器/代码来生成会话ID。

现在,我不确定何时php设置会话ID。我的php应用程序类似于MVC,并且所有内容都通过index.php,并且在index.php的顶部,我拥有session.start(),因为每个页面(登录后)都使用会话。

这是漏洞风险吗?还是我应该这样说:这是否意味着在首次访问我的网站时(甚至在登录之前),服务器是否为该用户设置了会话ID?session.start()是否设置了用户ID,还是直到我设置了第一个会话变量即未生成的会话ID。直到我做$ _SESSION ['foo'] ='bar'?

如果会话实际上是在session.start()上已经生成的,我想一个好主意是在身份验证后重新生成session-id,这样可以解决问题吗?

php security session sessionid

4
推荐指数
1
解决办法
1859
查看次数

如何增强网站的安全性?

问题1:我可以使用吗? $userid = mysql_real_escape_string($_GET['user_id']);

或者我需要使用下面的代码更好?

function mysql_prep( $value ){
        $magic_quotes_active = get_magic_quotes_gpc();
        $new_enough_php = function_exists( "mysql_real_escape_string" ); //example. php >= v4.3.0
        if( $new_enough_php ) { //php v4.30 or higher, undo any magic quote effects so mysql_real_escape_string can do the work
            if( $magic_quotes_active ) { $value = stripslashes( $value );}
            $value = mysql_real_escape_string( $value );
        } else { //before php v4.3.0.
            if( !$magic_quotes_active ) { $value = addslashes( $value ); }
        }
        return $value;
    }

$userid = trim(mysql_prep($_GET['user_id']));
Run Code Online (Sandbox Code Playgroud)

问题2:我们真的需要使用md5()或 …

php mysql

3
推荐指数
1
解决办法
1108
查看次数

在进入SQL查询之前,是否需要转义$ _SESSION ['username']?

我想知道在我在SQL查询中使用它之前是否需要转义$ _SESSION数组中的任何内容.

请注意,我在我的应用程序中不使用cookie,因为我听说它们可能用于会话劫持(?)

非常感谢

php mysql

1
推荐指数
1
解决办法
1128
查看次数

我怎样才能防止PHP项目中的会话固定?

我知道会话固定是在PHP中破解网站的方法.
会话修复是一种攻击,允许攻击者劫持有效的用户会话
会话固定, 但我不知道这可以防止我的项目中出现此问题.
是描述解决方案的方式或样本.

php session-fixation

1
推荐指数
1
解决办法
3439
查看次数