国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHPer必知:6個常見的PHP安全性攻擊!

Original 2017-01-04 11:43:29 340
abstract:了解常見的PHP應(yīng)用程序安全威脅,可以確保你的PHP應(yīng)用程序不受攻擊。因此,本文將列出 6個常見的 PHP 安全性攻。1、SQL注入 SQL注入是一種惡意攻擊,用戶利用在表單字段輸入SQL語句的方式來影響正常的SQL執(zhí)行。上面的代碼,在第一行沒有過濾或轉(zhuǎn)義用戶輸入的值($_POST['username'])。因此查詢可能會失敗,甚至?xí)p壞數(shù)據(jù)庫,這要看$username是

了解常見的PHP應(yīng)用程序安全威脅,可以確保你的PHP應(yīng)用程序不受攻擊。因此,本文將列出 6個常見的 PHP 安全性攻。
1、SQL注入

 SQL注入是一種惡意攻擊,用戶利用在表單字段輸入SQL語句的方式來影響正常的SQL執(zhí)行。

155505xtccoahqcmfg03m9.jpg.thumb.jpg

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

防止SQL注入選項:
1),使用mysql_real_escape_string()過濾數(shù)據(jù)
2),手動檢查每一數(shù)據(jù)是否為正確的數(shù)據(jù)類型
3),使用預(yù)處理語句并綁定變量
4),使用準(zhǔn)備好的預(yù)處理語句
5),分離數(shù)據(jù)和SQL邏輯
6),預(yù)處理語句將自動過濾(如:轉(zhuǎn)義)
7),把它作為一個編碼規(guī)范,可以幫助團(tuán)隊里的新人避免遇到以上問題

155506cj7h7h1wyjfa7sna.jpg.thumb.jpg

2、XSS攻擊

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

155507qiqhx9vh1661qen5.jpg.thumb.jpg
輸出內(nèi)容給(另一個)用戶

<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; ?>

將會發(fā)生什么事?
煩人的彈窗,刷新或重定向,損壞網(wǎng)頁或表單,竊取cookie,AJAX(XMLHttpRequest)

防止XSS攻擊
為了防止XSS攻擊,使用PHP的htmlentities()函數(shù)過濾再輸出到瀏覽器。htmlentities()的基本用法很簡單,具體可查看下手冊。

3、會話固定

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

4、會議捕獲和劫持

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

防止會話捕獲和劫持
1),更新ID
2),如果使用會話,請確保用戶使用SSL

5、跨站點請求偽造(CSRF)
         CSRF攻擊,是指一個頁面發(fā)出的請求,看起來就像是網(wǎng)站的信任用戶,但不是故意的。它有許多的變體,比如下面的例子
<img src='http://itcast.cn/want_buy_food.php?user_id=12345&item=12345'>
防止跨站點請求偽造
一般來說,確保用戶來自你的表單,并且匹配每一個你發(fā)送出去的表單。有兩點一定要記?。?br/>1),對用戶會話采用適當(dāng)?shù)陌踩胧?,例?給每一個會話更新id和用戶使用SSL。
2),生成另一個一次性的令牌并將其嵌入表單,保存在會話中(一個會話變量),在提交時檢查它。

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

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

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

防止代碼注入
1),過濾用戶輸入
2),在php.ini中設(shè)置禁用allow_url_fopen和allow_url_include。這將禁用require/include/fopen的遠(yuǎn)程文件。

其他的一般原則:

本帖隱藏的內(nèi)容


1). 不要依賴服務(wù)器配置來保護(hù)你的應(yīng)用,特別是當(dāng)你的web服務(wù)器/ PHP是由你的ISP管理,或者當(dāng)你的網(wǎng)站可能遷移/部署到別處,未來再從別處遷移/部署在到其他地方。請在網(wǎng)站代碼中嵌入帶有安全意識的檢查/邏輯(HTML、JavaScript、PHP,等等)。
2). 設(shè)計服務(wù)器端的安全腳本:
—例如,使用單行執(zhí)行 - 單點身份驗證和數(shù)據(jù)清理
—例如,在所有的安全敏感頁面嵌入一個PHP函數(shù)/文件,用來處理所有登錄/安全性邏輯檢查
3). 確保你的代碼更新,并打上最新補(bǔ)丁。


Release Notes

Popular Entries