偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

關(guān)于PHP的漏洞以及如何防止PHP漏洞?

安全 漏洞
漏洞無非這么幾類,XSS、sql注入、命令執(zhí)行、上傳漏洞、本地包含、遠(yuǎn)程包含、權(quán)限繞過、信息泄露、cookie偽造、CSRF(跨站請(qǐng)求)等。這些漏洞不僅僅是針對(duì)PHP語言的,本文只是簡單介紹PHP如何有效防止這些漏洞。

漏洞無非這么幾類,XSS、sql注入、命令執(zhí)行、上傳漏洞、本地包含、遠(yuǎn)程包含、權(quán)限繞過、信息泄露、cookie偽造、CSRF(跨站請(qǐng)求)等。這些漏洞不僅僅是針對(duì)PHP語言的,本文只是簡單介紹PHP如何有效防止這些漏洞。

1.xss + sql注入(關(guān)于xss攻擊詳細(xì)介紹)

其中占大頭的自然是XSS與SQL注入,對(duì)于框架類型或者有公共文件的,建議在公共文件中統(tǒng)一做一次XSS和SQL注入的過濾。用PHP寫個(gè)過濾函數(shù),可由如下所示:

$_REQUEST = filter_xss($_REQUEST);

$_GET = filter_xss($_GET);

$_POST = filter_xss($_POST);

$_COOKIE = filter_xss($_COOKIE);

$_POST = filter_sql($_POST);

$_GET = filter_sql($_GET);

$_COOKIE = filter_sql($_COOKIE);

$_REQUEST = filter_sql($_REQUEST);

最簡單的filter_xss函數(shù)是htmlspecialchars()

最簡單的filter_sql函數(shù)是mysql_real_escape_string()

當(dāng)然,誰都知道這種過濾filter_sql(詳細(xì)防止sql注入)只能過濾字符型和搜索型的注入,對(duì)于數(shù)字型是沒有辦法的,但也說明做了這層過濾后,只需在后面注意數(shù)字型的SQL語句就可以了,遇到了加intval過濾就可以了,這就變得容易多了。

2. 命令執(zhí)行

對(duì)于命令執(zhí)行,可以從關(guān)鍵字入手,總共可分為3類

(1) php代碼執(zhí)行 :eval等

(2)shell命令執(zhí)行:exec、passthru、system、shell_exec等

(3) 文件處理:fwrite、fopen、mkdir等

對(duì)于這幾類需要注意其參數(shù)是否用戶可控。

3.上傳漏洞

對(duì)于上傳漏洞,也是重點(diǎn)關(guān)注的地方,要仔細(xì)分析它的處理流程,針對(duì)上傳的繞過方式是很多的,最保險(xiǎn)的方式:在保存文件是采用文件名隨機(jī)命名和后綴白名單方式。其次要注意的一點(diǎn)是上傳文件的地方可能不止一處,不要有遺漏,可能會(huì)碰到這樣的情況,突然在某個(gè)目錄里面包含了一個(gè)第三方的編輯器在里面。

文件包含漏洞涉及的函數(shù)如include() 、include_once()、require()、require_once()、file_get_contents()等

最常見的還是出在下載文件功能函數(shù),例如download.php?file=../../../etc/passwd 這種類型中。

4. 權(quán)限繞過

權(quán)限繞過可分為兩類吧

(1)后臺(tái)文件的未授權(quán)訪問。后臺(tái)的文件沒有包含對(duì)session的驗(yàn)證,就容易出現(xiàn)這樣的問題

(2)未作用戶隔離,例如mail.php?id=23顯示了你的信件,那么換個(gè)ID, mail.php?id=24就查看到了別人的信件,編寫代碼是方便,把信件都存在一個(gè)數(shù)據(jù)表里,id統(tǒng)一編號(hào),前端展現(xiàn)時(shí)只需按id取出即可,但未作用戶隔離,判定歸屬,容易造成越權(quán)訪問。

這樣的例子是很常見的,給某銀行做評(píng)估是就經(jīng)常發(fā)現(xiàn)這種漏洞。

5. 信息泄露

信息泄露算是比較低危的漏洞了,比如列目錄這種就屬于部署問題,而與代碼審計(jì)無關(guān)了,而像暴路徑、暴源碼這種是需要防止的。曾經(jīng)遇到這樣的代碼

<?php if(empty($_GET['a'])) {…} ?>

表面上似乎沒問題,可是當(dāng)請(qǐng)求變?yōu)?xx.php?a[]=1時(shí),即參數(shù)變?yōu)閿?shù)組的時(shí)候,就會(huì)發(fā)生錯(cuò)誤以致路徑泄露,而用isset判斷則不會(huì),當(dāng)然一個(gè)個(gè)防太麻煩,建議在配置文件中關(guān)閉錯(cuò)誤提示,或者在公共文件中加入如下代碼以關(guān)閉錯(cuò)誤顯示功能:

<?php error_reporting(0);?>

之前PHP點(diǎn)點(diǎn)通(phpddt.com)就有一篇文章:關(guān)于PHP防止漏洞策略 ,介紹了register_globals 的危害以及魔術(shù)引用Magic Quotes使用說明。

責(zé)任編輯:藍(lán)雨淚 來源: php點(diǎn)點(diǎn)通
相關(guān)推薦

2012-04-12 16:05:50

2009-12-29 14:25:14

phpXSS漏洞

2009-08-15 10:19:01

漏洞利用php expEXP程序

2013-03-25 11:51:42

php漏洞代碼審計(jì)php

2018-02-02 14:29:25

PHP漏洞服務(wù)器

2015-02-04 14:50:29

2017-09-19 15:01:06

PHP漏洞滲透測(cè)試

2011-03-28 14:35:39

2012-04-12 11:28:04

2012-04-12 15:42:35

2012-12-19 10:36:06

2013-05-06 11:04:07

2010-10-22 15:18:18

SQL注入漏洞

2012-03-09 17:28:41

2012-02-06 09:14:26

2012-04-12 15:59:09

2015-09-16 16:51:21

2014-11-27 09:31:26

2012-04-12 13:36:59

2012-04-12 15:06:44

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)