2016-08-27 21 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']來自客戶端,它可以包含任何東西。如果您打算將它存儲在數據庫中或顯示它,則需要像處理其他用戶提供的輸入一樣對待它。

相關問題