亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

6個常見的 PHP 安全性攻擊實例和阻止方法

瀏覽:10日期:2022-09-08 13:48:24

了解常見的PHP應用程序安全威脅,可以確保你的PHP應用程序不受攻擊。因此,本文將列出 6個常見的 PHP 安全性攻擊,歡迎大家來閱讀和學習。

1、SQL注入

SQL注入是一種惡意攻擊,用戶利用在表單字段輸入SQL語句的方式來影響正常的SQL執(zhí)行。還有一種是通過system()或exec()命令注入的,它具有相同的SQL注入機制,但只針對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) { echo '<br />Logged in successfully';} else { echo '<br />Login failed';}

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

防止SQL注入

選項:

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

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

使用預處理語句并綁定變量

使用準備好的預處理語句

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

預處理語句將自動過濾(如:轉(zhuǎn)義)

把它作為一個編碼規(guī)范,可以幫助團隊里的新人避免遇到以上問題。

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

2、XSS攻擊

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

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

<?phpif (file_exists(’comments’)) { $comments = get_saved_contents_from_file(’comments’);} else { $comments = ’’;}if (isset($_POST[’comment’])) { $comments .= ’<br />’ . $_POST[’comment’]; save_contents_to_file(’comments’, $comments);}>

輸出內(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()的基本用法很簡單,但也有許多高級的控制,請參閱XSS速查表。

3、會話固定

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

6個常見的 PHP 安全性攻擊實例和阻止方法

4、會議捕獲和劫持

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

防止會話捕獲和劫持

更新ID

如果使用會話,請確保用戶使用SSL

5、跨站點請求偽造(CSRF)

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

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

防止跨站點請求偽造

一般來說,確保用戶來自你的表單,并且匹配每一個你發(fā)送出去的表單。有兩點一定要記住:

對用戶會話采用適當?shù)陌踩胧?給每一個會話更新id和用戶使用SSL。

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

6、代碼注入

代碼注入是利用計算機漏洞通過處理無效數(shù)據(jù)造成的。問題出在,當你不小心執(zhí)行任意代碼,通常通過文件包含。寫得很糟糕的代碼可以允許一個遠程文件包含并執(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://'開頭的文件。

防止代碼注入

過濾用戶輸入

在php.ini中設置禁用allow_url_fopen和allow_url_include。這將禁用require/include/fopen的遠程文件。

其他的一般原則

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

2. 設計服務器端的安全腳本:

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

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

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

到此這篇關于6個常見的 PHP 安全性攻擊實例和阻止方法的文章就介紹到這了,更多相關PHP安全性攻擊內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: PHP
相關文章:
主站蜘蛛池模板: 成免费网站 | 亚洲欧美久久精品一区 | 91自产国偷拍在线 | 国产日韩在线播放 | 国产精品a在线观看香蕉 | 久久91亚洲人成电影网站 | 欧美一欧美一级毛片 | 国产乱理伦片a级在线观看 国产乱理伦片在线观看 | 国产手机在线小视频免费观看 | 久久国产精品永久免费网站 | 中文字幕亚洲欧美 | 99久久精品国产自免费 | 亚洲97在线| 成人在线观看一区 | 亚洲免费网站 | 香港一级a毛片在线播放 | 亚洲aaa视频 | 极品主播的慰在线播放 | 国产成人精品免费影视大全 | 欧美亚洲综合在线 | 无码一区二区三区视频 | 成年女人免费又黄又爽视频 | 欧美在线视频网站 | 日韩特黄毛片 | 免费播放欧美一级特黄 | 久久91精品国产91久久 | 久久亚洲国产成人精品性色 | 成人午夜网址 | 伊人狠狠丁香婷婷综合色 | 六月丁香深爱六月综合激情 | 激情图片在线视频 | 老妇女毛片 | 香蕉在线视频观看 | 免费在线观看一区二区 | 精品国产一区二区三区久久影院 | 国产二三区 | 国产三级久久久精品麻豆三级 | 污污的网站有哪些呢 | 青青青视频免费一区二区 | 成人免费看黄 | 国产亚洲精品色一区 |