PHP程式猿必須學習的第二課 站點安全問題預防

2021-09-07 05:36:41 字數 2339 閱讀 1825

作為php程式猿。第一課我們學習了基本的語法。那麼在熟悉基本的語法之後我們應該學些什麼呢?我覺得是安全問題。安全問題基於乙個站點宛如基石,一著不慎,意味著災難性的事故。

這裡主要就提三點最簡單,也是最重要的安全問題。

以後再做補充。

1. include 

有時候。我們可能會依據使用者的輸入,include 乙個檔案,比方 

include $filename.'php'

那麼假設我的$filename 是外部站點的乙個連線呢,比方 無疑會導致安全漏洞。

所以在寫這樣的include 語句的時候我們必須首先推斷該檔案是否在本地存在。

if (file_exists($filename.'php'))

include $filename.'php'

2. xss 注入

xss注入 。即跨**指令碼注入。指使用者在輸入中加入類似與這種指令碼語句。

常見的會被xss攻擊的點包含 

2.1$_server[『php_self'] 

例項:

假設我在輸入框中輸入而假設我們的這個輸入框中的內容又會在網頁上顯示的話,那麼該指令碼就會被執行。

2.2 處理方法

為了預防這種攻擊。我們能夠用php中的乙個函式——htmlspecialchars() 。它把特殊字元轉換為 html 實體。這意味著 < 和 > 之類的 html 字元會被替換為 < 和 > 另外我們還能夠1使用

1.(通過 php trim() 函式)去除使用者輸入資料中不必要的字元(多餘的空格、製表符、換行)

2.(通過 php stripslashes() 函式)刪除使用者輸入資料中的反斜槓(\)

3. sql 注入

攻擊的主要手法是在表單輸入中加入注入sql語句。

例如以下面登入表單

假設我在id 框中輸入 name; drop table *;而我在後台處理中又用到了 」select from user where id=「.$id;

那麼sql語句就會變為

select from user where id=name;drop table *;

然後全部資料表都被刪除了。因此預防sql注入尤為重要。

處理方法:

php中有專門的函式 mysql_real_escape_string($sql); 它可以轉義sql語句中的特殊字元。

對於輸入框中提交資料,假設涉及到資料庫操作,我們須要用以上函式處理。

例項:

$user = mysql_real_escape_string($user);

$pwd = mysql_real_escape_string($pwd);

$sql = "select * from users where

user='" . $user . "' and password='" . $pwd . "'"

4. email 注入

這受眾面比較窄,僅僅要在你的頁面存在傳送email操作時預防就可以。 

例項:假設使用者在正文中輸入

[email protected]%0acc:[email protected]

%0abcc:[email protected],[email protected],

[email protected],[email protected]

%0abto:[email protected]

資訊,那麼在傳送郵件時這些文字就會被插入到郵件頭部。而導致郵件也被傳送到這些使用者。

<?php

if (isset($_request['email']))

//if "email" is filled out, send email

else

//if "email" is not filled out, display the form

?>

為了預防email注入,我們須要對使用者輸入的郵件資訊進行處理。在這裡我們能夠使用filter_var 對文字進行過濾。

function spamcheck($field)

else

}

過濾器功能:

filter_sanitize_email 從字串中刪除電子郵件的非法字元

filter_validate_email 驗證電子郵件位址

第二課 安裝PHP

為什麼要安裝php?php是伺服器端解析程式,一般執行在網路伺服器上。而編寫php語言的程式我們一般是在自己的個人電腦上完成,然後拿到伺服器上除錯。所以,學習php首先要讓我們的個人電腦模擬伺服器執行環境,讓php能象在伺服器上一樣在我們的個人電腦上執行。這就是為什麼要安裝配置php的原因。安裝配置...

第二課 PHP 安裝

為了開始使用 php,您可以 如果您的伺服器支援 php,那麼您不需要做任何事情。只要在您的 web 目錄中建立 php 檔案即可,伺服器將自動為您解析這些檔案。您不需要編譯任何軟體,或安裝額外的工具。由於 php 是免費的,大多數的 web 主機都提供對 php 的支援。然而,如果您的伺服器不支援...

linux學習第二課

今天跟著benjamin學習linux的第二課,主講內容 linux作業系統的檔案 一.linux系統下除了一般檔案外,所有的目錄和裝置 光碟機,硬碟等 都是以檔案的形式存在了。所以這裡就出現了乙個問題,我們怎樣才能使用物理裝置中的資料呢,linux系統是將物理裝置掛載 linux中乙個非常重要的概...