2016-08-27 52 views
0

我想知道使用此代码有多安全。尤其是$_SERVER['REMOTE_ADDR']$_SERVER['HTTP_USER_AGENT']

我一直在做这方面的一些研究。 据我可以告诉它应该是安全的比较像我这里做的变量? 我应该只在使用它们来运行sql查询或在我的页面上显示其内容时担心它们的值?

根据我在哪里使用它们,我应该运行mysqli_real_escape_stringhtmlspecialchars

什么时候应该使用trimstripslashes函数?

我只是试图保护我的网站免受最明显/常见的黑客入侵。不需要巨大的保护,但我希望它至少有安全保障!

任何我忽略或做错的事情? 有没有任何指导可以解释大部分内容?

session_start(); 

    if (!isset($_SESSION['logged_in'])) { 
      $_SESSION['logged_in'] = false; 
      $_SESSION['ip_address'] = $_SERVER['REMOTE_ADDR']; 
      $_SESSION['user_agent'] = (isset($_SERVER['HTTP_USER_AGENT'])) ? $_SERVER['HTTP_USER_AGENT'] : ''; 
    } else { 
      if ($_SESSION['ip_address'] !== $_SERVER['REMOTE_ADDR'] || ($_SESSION['user_agent'] !== $_SERVER['HTTP_USER_AGENT'])) { 
        session_destroy(); 
        header('Location: view/index.php'); 
        die(); 
      } 
    } 
+0

你的意思是'$ _SERVER',而不是'$ _SESSION'。 – Barmar

+0

'$ _SERVER ['REMOTE_ADDR']'来自网络服务器,告诉你连接的IP是什么。 '$ _SERVER ['HTTP_X']'值来自客户端发送的HTTP头,可以用任何方式操纵。这些值不应该被信任,应该像普通用户输入那样处理。 –

+0

是啊,哎呀,固定 –

回答

0

$_SERVER['REMOTE_ADDR']是由网络服务器创建的,它安全可靠。它始终只是一个数字格式的IP地址,您无需对其进行清理。

$_SERVER['HTTP_USER_AGENT']来自客户端,它可以包含任何东西。如果您打算将它存储在数据库中或显示它,则需要像处理其他用户提供的输入一样对待它。

相关问题