如何安全地使用$ _SERVER [' REMOTE_ADDR']和$ _SERVER [' HTTP_USER_AGENT']

时间:2016-08-27 10:24:44

标签: php security session session-variables code-injection

我想知道使用此代码是多么安全。特别是$_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();
            }
    }

1 个答案:

答案 0 :(得分:0)

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

{{1}}来自客户端,它可以包含任何内容。如果您要将其存储在数据库中或显示它,您需要将其视为任何其他用户提供的输入。