Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的会话安全性和需要注意的事项_Php_Security_Session - Fatal编程技术网

php中的会话安全性和需要注意的事项

php中的会话安全性和需要注意的事项,php,security,session,Php,Security,Session,这已经被问了很多次了。我只是好奇,是否相信下面的代码提供了相当重要的安全级别。还有其他我应该考虑的if吗 一些假设: 如果用户在5秒内什么也不做,请将其注销 如果用户不是来自somePage.php,请将其注销 如果用户的ip地址发生变化,请将其注销 代码如下: <?php session_start(); $time = time(); $ip = $_SERVER['REMOTE_ADDR']; if ($time - $_SESSION['time'] > 5) {

这已经被问了很多次了。我只是好奇,是否相信下面的代码提供了相当重要的安全级别。还有其他我应该考虑的if吗

一些假设:

  • 如果用户在5秒内什么也不做,请将其注销
  • 如果用户不是来自somePage.php,请将其注销
  • 如果用户的ip地址发生变化,请将其注销
  • 代码如下:

    <?php
    session_start();
    $time = time();
    $ip = $_SERVER['REMOTE_ADDR'];
    
    if ($time - $_SESSION['time'] > 5)
    {
        //function to log out user...//echo "logged Out,Time";
    }
    elseif ($ip !== $_SESSION['ip'])
    {
        //function to log out user...//echo "logged out,IP";
    }
    elseif ($_SERVER['HTTP_REFERER'] !== "http://server.com/somePage.php")
    {
        //function to log out user...//echo "logged out,Refer";
    }
    else
    {
       //do sensitive stuff
    }
    $_SESSION['time'] = $time;
    $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
    ?>
    
    
    
    编辑:

    这只是“敏感”领域的一些基本内容。在facebook的层面上。我不想让任何人进入不该进入的领域。但如果他们这样做了,将会有一些问题,但核导弹将不会发射

    5秒是我测试的例子,显然它会更长

    布莱恩

    如果可以欺骗$u服务器,是否有更好的方法来确定用户的源ip

    一些假设:

  • 如果用户在5秒内什么也不做,请将其注销
  • 如果用户不是来自somePage.php,请将其注销
  • 如果用户的ip地址发生变化,请将其注销
  • 你会让你的用户(可能不完全是男性)发疯。尤其是Tor用户

    要实施,您需要做的事情很少:

  • 使用CSPRNG生成会话ID
  • 使用HTTPS
  • 使用HttpOnly cookies(因此它们对JavaScript不可见)
  • 使用安全cookie(因此它们仅在HTTPS中可用)
  • 使用会话重新生成id(true)每当用户在分配新会话变量值之前登录或注销时

  • 根据应用程序类型、应用程序收集的信息类型以及与此相关的任何法律等因素,安全性要求随上下文而变化。因此,如果没有您的上下文,几乎不可能告诉您您的安全措施对于您的应用程序是必要的还是足够的。此外,仅供参考,几乎任何$\u服务器变量都可能被攻击者欺骗。是的,“敏感内容”毫无意义——记录访客信息和发射核导弹都属于这一类。你必须更具体地说明你将要做什么,这样我们才能告诉你什么级别的安全性是合适的。“如果用户在5秒钟内什么也不做,请将他注销”——是的,那些讨厌的家伙可能会试图阅读超过5秒钟的内容……这些人在我们现代多动症社会中没有一席之地,所以踢他们!(抱歉,太长了,读不下去了),即使是谷歌,也可以让你切换IPs,让你的会话活跃起来。考虑将会话ID与每个请求一起旋转,这样你就不用担心这么多了。