国产精品毛片一区二区三区四区_国产亚洲中文日韩欧_91 超碰在线观看_一二三四电影在线观看免费_亚洲第一午夜福利网站_中文字幕在线永久_国产人妖的免费的视频_在线日韩视频成人网站观看_国产后入学生妹清纯妺_激情视频激情图片国产亚洲

  1. 首頁
  2. 新聞資訊
  3.  
  4. 建站經(jīng)驗(yàn)
  5.  

常見的PHP 安全性攻擊有哪些呢 ?

發(fā)布時(shí)間:2018-08-23 13:11:58 來源:
了解常見的PHP應(yīng)用程序安全威脅,可以確保你的PHP應(yīng)用程序不受攻擊。因此,本文將列出 6個(gè)常見的 PHP 安全性攻擊,歡迎大家來閱讀和學(xué)習(xí)。

 

 

1、SQL注入

 

 

SQL注入是一種惡意攻擊,用戶利用在表單字段輸入SQL語句的方式來影響正常的SQL執(zhí)行。還有一種是通過system()或exec()命令注入的,它具有相同的SQL注入機(jī)制,但只針對(duì)shell命令。

$username = $_POST['username'];
$query = "select * from auth where username = '".$username."'";
echo $query;
$db = new mysqli('localhost''demo', ‘demo', ‘demodemo');
$result = $db->query($query);
if ($result && $result->num_rows) {
&nbsp;&nbsp;&nbsp; echo "<br />Logged in successfully";
} else {
&nbsp;&nbsp;&nbsp; echo "<br />Login failed";
}

 

上面的代碼,在第一行沒有過濾或轉(zhuǎn)義用戶輸入的值($_POST['username'])。因此查詢可能會(huì)失敗,甚至?xí)p壞數(shù)據(jù)庫,這要看$username是否包含變換你的SQL語句到別的東西上。

防止SQL注入

選項(xiàng):

1),使用mysql_real_escape_string()過濾數(shù)據(jù)

2),手動(dòng)檢查每一數(shù)據(jù)是否為正確的數(shù)據(jù)類型

3),使用預(yù)處理語句并綁定變量

4),使用準(zhǔn)備好的預(yù)處理語句

5),分離數(shù)據(jù)和SQL邏輯

6),預(yù)處理語句將自動(dòng)過濾(如:轉(zhuǎn)義)

7),把它作為一個(gè)編碼規(guī)范,可以幫助團(tuán)隊(duì)里的新人避免遇到以上問題

$query = 'select name, district from city where countrycode=?';
if ($stmt = $db->prepare($query) )
{
&nbsp;&nbsp;&nbsp; $countrycode = 'hk';
&nbsp;&nbsp;&nbsp; $stmt->bind_param("s", $countrycode);
&nbsp;&nbsp;&nbsp; $stmt->execute();
&nbsp;&nbsp;&nbsp; $stmt->bind_result($name, $district);
&nbsp;&nbsp;&nbsp; while ( $stmt ($stmt->fetch() ){
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $name.', '.$district;
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo '<br />';
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; $stmt->close();
}

 

 

2、XSS攻擊

 

 

XSS(跨站點(diǎn)腳本攻擊)是一種攻擊,由用戶輸入一些數(shù)據(jù)到你的網(wǎng)站,其中包括客戶端腳本(通常JavaScript)。如果你沒有過濾就輸出數(shù)據(jù)到另一個(gè)web頁面,這個(gè)腳本將被執(zhí)行。

 

接收用戶提交的文本內(nèi)容

<?php
if (file_exists('comments')) {
&nbsp;&nbsp;&nbsp; $comments = get_saved_contents_from_file('comments');
} else {
&nbsp;&nbsp;&nbsp; $comments = '';
}

if (isset($_POST['comment'])) {
&nbsp;&nbsp;&nbsp; $comments .= '<br />' . $_POST['comment'];
&nbsp;&nbsp;&nbsp; save_contents_to_file('comments', $comments);
}
?>

 

輸出內(nèi)容給(另一個(gè))用戶

<form action='xss.php' method='POST'>
Enter your comments here: <br />
<textarea name='comment'></textarea> <br />
<input type='submit' value='Post comment' />
</form><hr /><br />

<?php echo $comments; ?>

 

將會(huì)發(fā)生什么事?

煩人的彈窗,刷新或重定向,損壞網(wǎng)頁或表單,竊取cookie,AJAX(XMLHttpRequest)

 

防止XSS攻擊

為了防止XSS攻擊,使用PHP的htmlentities()函數(shù)過濾再輸出到瀏覽器。htmlentities()的基本用法很簡單,但也有許多高級(jí)的控制,請(qǐng)參閱 XSS速查表。

 

 

3、會(huì)話固定

 

 

會(huì)話安全,假設(shè)一個(gè)PHPSESSID很難猜測(cè)。然而,PHP可以接受一個(gè)會(huì)話ID通過一個(gè)Cookie或者URL。因此,欺騙一個(gè)受害者可以使用一個(gè)特定的(或其他的)會(huì)話ID 或者釣魚攻擊。

 

 

 

4、會(huì)議捕獲和劫持

 

 

這是與會(huì)話固定有著同樣的想法,然而,它涉及竊取會(huì)話ID。如果會(huì)話ID存儲(chǔ)在Cookie中,攻擊者可以通過XSS和JavaScript竊取。如果會(huì)話ID包含在URL上,也可以通過嗅探或者從代理服務(wù)器那獲得。

 

防止會(huì)話捕獲和劫持

1),更新ID

2),如果使用會(huì)話,請(qǐng)確保用戶使用SSL

 

 

 

5、跨站點(diǎn)請(qǐng)求偽造(CSRF)

 

 

CSRF攻擊,是指一個(gè)頁面發(fā)出的請(qǐng)求,看起來就像是網(wǎng)站的信任用戶,但不是故意的。它有許多的變體,比如下面的例子

<img src='http://example.com/single_click_to_buy.php?user_id=123&item=12345'>

 

防止跨站點(diǎn)請(qǐng)求偽造

一般來說,確保用戶來自你的表單,并且匹配每一個(gè)你發(fā)送出去的表單。有兩點(diǎn)一定要記?。?/span>

1),對(duì)用戶會(huì)話采用適當(dāng)?shù)陌踩胧?,例?給每一個(gè)會(huì)話更新id和用戶使用SSL。

 2),生成另一個(gè)一次性的令牌并將其嵌入表單,保存在會(huì)話中(一個(gè)會(huì)話變量),在提交時(shí)檢查它。

 

 

6、代碼注入

 

 

代碼注入是利用計(jì)算機(jī)漏洞通過處理無效數(shù)據(jù)造成的。問題出在,當(dāng)你不小心執(zhí)行任意代碼,通常通過文件包含。寫得很糟糕的代碼可以允許一個(gè)遠(yuǎn)程文件包含并執(zhí)行。如許多PHP函數(shù),如require可以包含URL或文件名,例如:

<form>
Choose theme:
&nbsp;&nbsp;&nbsp; <select name = theme>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <option value = blue>Blue</option>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <option value = green>Green</option>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <option value = red>Red</option>
&nbsp;&nbsp;&nbsp; </select>
&nbsp;&nbsp;&nbsp; <input type = submit>
</form>
<?php
&nbsp;&nbsp;&nbsp; if($theme) {
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; require($theme.'.txt');
&nbsp;&nbsp;&nbsp; }
?>

 

在上面的例子中,通過傳遞用戶輸入的一個(gè)文件名或文件名的一部分,來包含以"http://"開頭的文件。

 

防止代碼注入

1),過濾用戶輸入

2),在php.ini中設(shè)置禁用allow_url_fopenallow_url_include。這將禁用require/include/fopen的遠(yuǎn)程文件。

 

其他的一般原則

1). 不要依賴服務(wù)器配置來保護(hù)你的應(yīng)用,特別是當(dāng)你的web服務(wù)器/ PHP是由你的ISP管理,或者當(dāng)你的網(wǎng)站可能遷移/部署到別處,未來再從別處遷移/部署在到其他地方。請(qǐng)?jiān)诰W(wǎng)站代碼中嵌入帶有安全意識(shí)的檢查/邏輯(HTML、JavaScript、PHP,等等)。

2). 設(shè)計(jì)服務(wù)器端的安全腳本:

—例如,使用單行執(zhí)行 - 單點(diǎn)身份驗(yàn)證和數(shù)據(jù)清理

—例如,在所有的安全敏感頁面嵌入一個(gè)PHP函數(shù)/文件,用來處理所有登錄/安全性邏輯檢查

3). 確保你的代碼更新,并打上最新補(bǔ)丁。

新聞資訊

 

服務(wù)項(xiàng)目

 

聯(lián)系我們

  • 咨詢電話:13316437003
  • 地址:廣東省深圳市福田區(qū)八卦四路中浩大廈2樓201
  • 業(yè)務(wù)咨詢:點(diǎn)擊這里給我發(fā)消息
  • 技術(shù)服務(wù):點(diǎn)擊這里給我發(fā)消息
  • 售后郵箱:service@dcnop.com
  • 技術(shù)郵箱:zcl@dcnop.com

 

微信公眾號(hào)

  • 客服:點(diǎn)擊這里給客服發(fā)消息

    技術(shù):點(diǎn)擊這里給技術(shù)發(fā)消息

    大誠網(wǎng)絡(luò)--深圳網(wǎng)站制作|深圳網(wǎng)站優(yōu)化|深圳網(wǎng)站運(yùn)營

    客戶服務(wù)熱線

    0755-82400810

    在線客服