PHP技術知識點整理


1.解釋mvc

(1)mvc即 模型model,視圖view,控制器controller;是一種模型,是一種編程思想,就是把一個應用的輸入、輸出、數據處理分開,分解耦合(2)A..視圖,數據采集和處理,和用戶請求,不包括業務流程,smarty實現B.模型,接收數據和請求,完成相關數據處理,返回數據,’黑箱‘操作,核心,php類庫實現C.控制器,任務的實現,根據傳入數據調用各種組件完成任務,將結果傳給視圖顯示,業務流程的實現。(3)mvc的優點:使開發人員只關注某一層,很容易用新代替舊層次的實現,低依賴性,重用性,標准化,擴展性.維護性

 

2.無限分類的實現原理。

A.三種:(1)遞歸方式:查詢次數非常多,不推薦使用。(2)ajax:點誰,查子欄目,再點子欄再查子欄目。點了幾次查了幾次(3)血緣關系:一次性把親戚全找到。新增加欄目的path=父ID的path-父欄目的ID

B.查詢:select id,name,pid,path,concat(path,'-',id) as bpath from shop_menu order by bpath;

 

3.大流量高並發量網站的解決方案

(1)確認服務器硬件是否支持當前流量。(2)memcache緩存技術,將動態數據緩存到內存中,動態網頁直接調用這些文件,不訪問數據庫。(3)禁外部盜鏈。外部網站的圖片或文件盜鏈會帶來大量負載壓力,應該嚴格限制外部對自身盜鏈,目前可以簡單通過refer控制盜鏈,apache可以通過配置來禁止盜鏈。(4)控制大文件下載。大文件的下載會占用很大的流量,對於非SCSI硬盤來說會消耗,使得網站響應能力下降。(5)不同主機分流(6)流量統計軟件。可以即時知道哪些地方耗費了大量流量,哪些頁面需要再進行優化。如phpstat,pcs(7)分庫分表。(8)Sphinx全文索引引擎。(9)cdn技術讓不同地方的ip訪問不同地方的服務器。(10)高並發,f5、lvs。(11)如果是代碼服務器與數據庫服務器負載不上,加一隊列讓其給代碼服務器平均分配鏈接。

 

4.如何設計或配置Mysql,才能達到高效使用的目的

(1)數據庫設計,結構良好,允許部分冗余。 (2)最適用字段屬性,盡可能字段NOTNULL,這樣在查詢時,不用去比較NULL值。(3)系統架構設計,表散列,海量數據散列到幾個表里,集群,查寫分開。(4)高效sql,提高效率。 (5)使用連接(join)來代替子查詢。(6)使用聯合(union)來代替手動創建的臨時表。(7) 所得皆必須,只從數據庫取必須的數據。(8) 必要時用不同存儲引擎,如Innodb可少死鎖,HEAP提查詢速度。(9)使用事務、外鍵、索引(10)緩存技術

 

5.如何進行防SQL注入

(1)過濾常見數據庫操作關鍵字:select,insert,update,delete,and,*等,或通過系統函數:addslashes(需被過濾內容)過濾。(2)PHP配置文件Register_globals=off;//注冊全局變量關閉。(3)SQL書寫不要省略小引號(tab上)和單引號。(4)高數據庫命名技巧,對於一些重要的字段根據程序的特點命名,取不易被猜到的(5)常用方法封裝,避直接暴漏SQL 。(6)PHP安全模式Safe_mode=on;。(7)開Magic_quotes_gpc=on;自動把sql語句轉換,'轉為\',很有效。(8)關閉錯誤提示信息,寫到系統日志。(9)使用mysqli或pdo預處理。

 

6..安全的用戶登錄系統需注意。

(1)MD5(密碼+字符串)加密。(2)登錄表單名不跟字段一樣,免暴漏表字段。(3)表名、字段名、密碼用不易被猜到的。(4)用驗證碼驗證登陸,以防止暴力破解。(5)驗證提交的數據是不是來自本網站。(6)登錄后處理代碼數據庫部分使用預處理,做好過濾,防sql注入。

(2) 

7.PHP框架優劣點。

(1)BroPHP:優點:輕量級學習型框架,配置簡,操作簡,易上手,全面文檔。(2)ThinkPHP框架:優點:功能全,配置較簡,操作較簡,多示例程序。缺點:操作方法太多,新手不知如何選,文檔不全面。

 

8.版本控制工具?

1.Clearcase 2.CVS 3.SVN 4.PVCS 5.Perforce 6.CCC 7.StarTeam 8.RCS 

 

 

 

 

9.GET與POST?

(1)GET明文傳輸顯示的地址欄上各值之間以&連接。POST傳輸是不可見的。(2)GET數據長度有限,不適合大數據傳輸。post理論上是沒有限制,具體根據瀏覽器而定。(3)GET限制Form表單的數據集的值必須為ASCII字符;而Post支持整個ISO10646字符集。

 

10.SESSION與COOKIE?

(1)Session服務器端,給每個客戶分配一個唯一的數字,作為每個客戶的標識,Cookies是一種由服務器發送給客戶端的片段信息,存儲在客戶端瀏覽器的內存或是硬盤上,每次發出頁面請求時,都會把里面的數據發送給服務器端.可以利用它在遠程瀏覽器端存儲數據並以此來跟蹤和識別用戶的機制。(2) Cookies適合做保存用戶個人設置,愛好等,Session適合做客戶的身份驗證.(3)http無狀態協議,不能區分用戶是否是從同一個網站上來的,同一個用戶請求不同的頁面不能看做是同一個用戶。

 

11能夠使HTML和PHP分離開使用的模板

Smarty,Dwoo,TinyButStrong,TemplateLite,XTemplate

 

12.關於中文截取的問題

1.mb_substr($str, $start, $length, $charset);

2.iconv_substr();(PHP 4 >= 4.0.6, PHP 5)

3.結合Join 、array_slice和 正則

 

13.MySQL存儲引擎中MyISAM和InnoDB,優缺點,索引?

(1)MyISAM 優:成熟、穩定、易於管理;表格鎖定機制;比innoDB快;缺:optimize清理空間;適合:讀取需求、節約空間時間、響應速度快;(2)InnoDB優:數據庫支持外鍵和事務處理,缺:速度比MyISAM稍慢;占用空間大;適合:用到事務、外鍵和更高安全性的需求;多用戶同時修改表;

(3)創建索引:alert table tablename add index (`字段名`)

 

14.什么是數據庫索引,主鍵索引,唯一索引的區別,索引的缺點是什么?

(1)索引:通過在表字段中建立索引可提高查詢優化,確保數據的唯一性,以及可以對全文索引字段中的大量文本的搜索進行優化。(2)主鍵索引(primary key):主要作用是確定數據表里一條特定的數據記錄的位置。數據表會根據主鍵的唯一索引性來唯一標示每條記錄。(3)唯一索引(unique)主要是為了避免數據出現重復(4)區別:每個表中只能有一個主鍵索引,但可以有多個唯一索引。

(優點):創建索引可以大大提高系統的性能:

(1)保證數據庫表中每一行唯一性.(2)加快數據檢索速度,最主要的原因。(3)加速表和表之間連接(4)在使用分組和排序 子句進行數據檢索時,顯著減少查詢中分組和排序時間。 (5)查詢使用優化隱藏器,提高系統性能。

 增加索引也有許多不利的方面:

(1)創建和維護索引要耗費時間,隨着數據量的增加而增加。(2)占物理空間,除了數據表占數據空間之外,索引還要占一定的物理空間,如果要建立聚簇索引,空間就會更大。(3)當對表數據進行增刪改時,索引也要動態維護,降低數據維護速度。

在哪建索引?(1)經常需要搜索的列,加快搜索的速度; (2)主鍵列,強制該列唯一性和組織表中數據排列結構(3)經常連接列(外鍵)加快連接速度(4)范圍搜索列,因索引已排序,范圍是連續(5)排序列,因索引已排序,可利用索引排序加快時間; (6)WHERE子句列,加快條件判斷。

15.varchar 和 char區別?(1) char是固定長度,分配多少,就占多長。(2)Varchar是可變長度,內容有多大就占多大,節省空間。(3)因varchar是可變的,所以在數據長度改變時,服務器要進行額外操作,所以效率比char類型低。

 

16瀏覽器IE和非IE瀏覽器的划分,區別是什么?

(1)ie瀏覽器使用范圍廣,很多不規范網頁都是只支持ie內核瀏覽器的,但因使用范圍廣,成為黑客攻擊目標。(2)非ie內核瀏覽器為搶占市場,研究新技術新功能,所以比ie內核瀏覽器速度功能出色,但因不具ie經常被攻擊鍛煉出來免疫力,一旦被攻擊完全不具備承受能力。

 

 

(-1-)

17.數據庫中的事務是什么?

事務(transaction)是作為一個單元一組有序的數據庫操作。若組中所有操作都成功,則認為事務成功,即使只有一個操作失敗,事務也不成功。如果所有操作完成,事務則提交,其修改將作用於所有其他數據庫進程。若一個操作失敗,則事務回滾,該事務所有操作影響都將取消。

 

18.Linux 下建立壓縮包,解壓縮包的命令

(1)Gz:打包: tar czf file.tar.gz file.txt      解壓: tar xzf file.tar.gz

(2)Bz2:打包: tar -cjf file.tar.bz2 file.txt    解壓: tar -xjf file.tar.bz2

(3)Gzip:打包: gzip file1.txt             解壓: gunzip file1.txt.gz

(4)Zip:打包: zip file1.zip file1.txt        解壓: unzip file1.zip

 

19.不使用cookie向客戶端發送一個cookie.

session_start()開啟時,生成一個常量 SID,當COOKIE開啟時,這個常量為空,當COOKIE關閉時,這個常量中存儲了PHPSESSID的值。通過在URL后加一個SID參數來傳遞 SESSIONID的值,從而使客戶端頁面可以使用SESSION里面的值。 當客戶端開啟COOKIE和服務器端開啟SESSION時。 瀏覽器第一次請求,服務器會向瀏覽器端發送一個COOKIE里面存儲SESSIONID. 當瀏覽器第二次請求時,會把已存在的COOKIE一起提交到服務器端。

 

20.isset()  empty() 區別

Isset是否存在,存在(真),empty是否(空假),(空假)返回真。

 

21.寫出匹配URL的正則表達式

/^[a-zA-z]+:\/\/(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?/

 

22.你所知道的設計模式有哪些?

工廠模式、策略模式、單元素模式、觀察者模式、命令鏈模式

 

23.說說你對SVN的了解?優缺點?

定義:SVN是一種版本控制器,程序員開發代碼遞交到版本服務器進行集中管理。優點:代碼進行集中管理,版本控制容易,操作比較簡單,權限控制方便。

缺點:不能隨意修改服務器項目文件夾。

 

24.傳值與傳引用的區別。什么時候傳值什么時候傳引用
(1)按值傳遞:函數范圍內對值的任何改變在函數外部都會被忽略(2)按引用傳遞:函數范圍內對值的任何改變在函數外部也能反映出這些修改(3)優缺點:A:按值傳遞時,php必須復制值。特別是對於大型的字符串和對象來說,這將會是一個代價很大的操作。B.按引用傳遞則不需要復制值,對於性能提高很有好處。

 

25.單介紹下什么是cURL:

(1)cURL可以使用URL的語法模擬瀏覽器來傳輸數據,因為它是模擬瀏覽器,因此它支持多種協議。

(2)使用cURL完成請求:a.初始化,創建一個新cURL資源b.設置URL和相應的選項c.抓取URL並把它傳遞給瀏覽器d.關閉cURL資源,並且釋放系統資源.

26.你所知道的設計模式有哪些?

工廠模式、策略模式、單元素模式、觀察者模式、命令鏈模。

 

27.說說你對代碼管理的了解? 常使用那些代碼版本控制軟件?

通常一個項目是由一個團隊去開發,每個人將自己寫好的代碼提交到版本服務器,由項目負責人按照版本進行管理,方便版本的控制,提高開發效率,保證需要時可以回到舊版本。常用的版本控制器:SVN

 

28.說說你對SVN的了解?優缺點?

SVN是一種版本控制器,程序員開發的代碼遞交到版本服務器進行集中管理。

優點:代碼進行集中管理,版本控制容易,操作比較簡單,權限控制方便。

缺點:不能隨意修改服務器項目文件夾。

 

29.PHP加速模式/擴展? PHP調試模式/工具?

Zend Optimizer加速擴展

調試工具:xdebug

30.你常用到的mysql命令?

Show databases

Show tables

Insert into 表名() values()

Update 表名 set 字段=值 where ...

Delete from 表名 where ...

Select * from 表名 where 條件 order by ... Desc/asc limit ... Group by ... Having ...

31.進入mysql管理命令行的命令?

Mysql -uroot -p 回車 密碼

 

32.show databases; 這個命令的作用?

顯示當前mysql服務器中有哪些數據庫

 

33.show create database mysql; 這個命令的作用?

顯示創建數據庫的sql語句

 

34.show create table user; 這個命令的作用?

顯示創建表的sql語句

 

35.desc user; 這個命令的作用?

查詢user表的結構

 

36.explain select * from user; 這個命令的作用?

獲取select相關信息

 

37.show processlist; 這個命令的作用?

顯示哪些線程正在運行

 

38.SHOW VARIABLES; 這個命令的作用?

顯示系統變量和值

 

39.SHOW VARIABLES like ’%conn%’; 這個命令的作用?

顯示系統變量名包含conn的值

 

40.LEFT JOIN 寫一個SQL語句?

SELECT A.id,A.class FROM A LEFT JOIN B ON A.cid=B.id

 

41.in, not in, exist, not exist的作用和區別?

in在什么中

Not in 不在什么中

Exists 存在

Not exists 不存在

 

42.怎么找到數據庫的配置文件路徑?

在數據庫安裝目錄下,my.ini

 

43.簡述Cookie的設置及獲取過程

設置COOKIE的值:

Setcookie(名稱,值,保存時間,有效域);

獲取值:$_COOKIE['名稱'];

 

44.面向對象中接口和抽象類的區別及應用場景?

1、有抽象方法的類叫做抽象類,抽象類中不一定有抽象方法,抽象方法必須使用abstract關鍵字定義。

2、接口中全部是抽象方法,方法不用使用abstract定義。

3、當多個同類的類要設計一個上層,通常設計為抽象類,當多個異構的類要設計一個上層,通常設計為接口。

 

45.如下user表結構

名稱

類型

說明

備注

Uid

Int unsigned

主鍵

 

Name

Varchar(20)

 

 

Age

Tinyint unsigned

 

 

 

需求:

增加一個字段性別sex,寫出修改語句

Alert table user add sex enum(’0′,’1′);

 

查詢出年齡介於20歲到30歲之間的用戶

Select * from user where age>20 and age<30

如果是一個Web頻繁訪問的查詢,上題的查詢如何優化?

使用memcache緩存技術,在一定時間內將動態內容緩存到文件中,訪問動態頁面時,直接調用緩存文件而不必重新查詢數據庫。

 

46.echo(),print(),print_r()的區別?

echo是PHP語句, print和print_r是函數,語句沒有返回值,函數可以有返回值(即便沒有用) 

   Print()只能打印出簡單類型變量的值(如int,string) 

   print_r()可以打印出復雜類型變量的值(如數組,對象) 

   echo  輸出一個或者多個字符串

47.什么是模板技術、能夠使HTMLPHP分離開使用的模板?

模板技術就是使程序的邏輯代碼和界面分開的技術。

能夠使HTML和PHP分開的模板有:Smarty、Template、PHPlib Template、FastTemplate

(-2-)

48.寫幾個魔術方法並說明作用?

__call()當調用不存在的方法時會自動調用的方法

__autoload()在實例化一個尚未被定義的類是會自動調用次方法來加載類文件

__set()當給未定義的變量賦值時會自動調用的方法

__get()當獲取未定義變量的值時會自動調用的方法

__construct()構造方法,實例化類時自動調用的方法

__destruct()銷毀對象時自動調用的方法

__unset()當對一個未定義變量調用unset()時自動調用的方法

__isset()當對一個未定義變量調用isset()方法時自動調用的方法

__clone()克隆一個對象

__toString()當輸出一個對象時自動調用的方法

 

49.$_REQUEST$_POST$_GET$_COOKIE$_SESSION$_FILE的意思是什么

它們都是PHP預定義變量

$_REQUEST用來獲取post或get方式提交的值

$_POST用來獲取post方式提交的值

$_GET用來獲取get方式提交的值

$_COOKIE用來獲取cookie存儲的值

$_SESSION用來獲取session存儲的值

$_FILE用來獲取上傳文件表單的值

 

50.數組中下標最好是什么類型的,為什么?

數組的下標最好是數字類型的,數字類型的處理速度快。

 

51.++ii++哪一個效率高,為什么?

++i效率比i++的效率更高,因為++i少了一個返回i的過程。

 

52.magic_quotes_gpc()magic_quotes_runtime()的意思是什么?

Magic_quotes_gpc()是php配置文件中的,如果設置為on則會自動POST,GET,COOKIE中的字符串進行轉義,在‘之前加\

Magic_quotes_runtime()是php中的函數,如果參數為true則會數據庫中取出來的單引號、雙引號、反斜線自動加上反斜杠進行轉義。

 

53.框架中什么是單一入口和多入口,單一入口的優缺點?

1、多入口就是通過訪問不同的文件來完成用戶請求。

單一入口指web程序所有的請求都指向一個腳本文件的。

2、單一入口更容易控制權限,方便對http請求可以進行安全性檢查。

缺點:URL看起來不那么美觀,特別是對搜索引擎來說不友好。

 

54.你對Memcach的理解,優點有哪些?

Memcache是一種緩存技術,在一定的時間內將動態網頁經過解析之后保存到文件,下次訪問時動態網頁就直接調用這個文件,而不必在重新訪問數據庫。使用memcache做緩存的好處是:提高網站的訪問速度,減輕高並發時服務器的壓力。

Memcache的優點:穩定、配置簡單、多機分布式存儲、速度快。

 

55.對關系型數據庫而言,索引是相當重要的概念,請回答有關索引幾個問題:

a) 索引的目的是什么?

1、快速訪問數據表中的特定信息,提高檢索速度

2、創建唯一性索引,保證數據庫表中每一行數據的唯一性

3、加速表和表之間的連接

4、使用分組和排序子句進行數據檢索時,可以顯著減少查詢中分組和排序的時間

b) 索引對數據庫系統的負面影響是什么?

負面影響:創建索引和維護索引需要耗費時間,這個時間隨着數據量的增加而增加;索引需要占用物理空間,不光是表需要占用數據空間,每個索引也需要占用物理空間;當對表進行增、刪、改的時候索引也要動態維護,這樣就降低了數據的維護速度。

c) 為數據表建立索引的原則有哪些?

1、在最頻繁使用的、用以縮小查詢范圍的字段上建立索引

2、在頻繁使用的、需要排序的字段上建立索引

d) 什么情況下不宜建立索引?

1、對於查詢中很少涉及的列或者重復值比較多的列,不宜建立索引

2、對於一些特殊的數據類型,不宜建立索引,比如文本字段(text)等。

 

56.web應用中,數據庫的讀取頻率遠高於寫入頻率如何優化MySQL而應對此種情景?

使用memcache緩存技術,將動態數據緩存到文件,訪問動態頁面時直接調用緩存文件,而不必重新訪問數據庫,這樣就減少了查詢數據庫的次數。

如果網站的訪問量很大,可以把數據庫讀寫服務器分開,使用多台服務器去處理數據庫查詢,使用較少的服務器去處理數據庫的寫入和修改。

 

57.請舉例說明在你的開發過程中用什么方法來加快頁面的加載速度
       要用到服務器資源時才打開,及時關閉服務器資源,數據庫添加索引,頁面可生成靜態,圖片等大文件單獨服務器。使用代碼優化工具。

58.includerequire的區別?

(1)include()在執行文件時每次都要進行讀取和評估;require()文件只處理一次(實際上文件內容替換了require()語句)(2)require()通常放在PHP腳本程序的最前面include()的使用和require()一樣,一般放在流程控制的處理區段中,PHP腳本文件讀到include()語句時,才將它包含的文件讀進來,這種方式,可以把程序執行時的流程簡單化(3)require()和include()語句是語言結構,不是真正的函數,可以像PHP的其他語言結構一樣(4)include_once()和require_once()語句也是在腳本執行期間包括並運行指定文件,與include()require()唯一的區別是如果文件中的代碼已經被包括了,則不會再次包括.(5)require()包含文件失敗,停止執行,給出錯誤(致命的);(6)include()常用於動態包含.通常是自動加載的文件,即使加載出錯,整個程序還是繼續執行一個頁面聲明,另一個頁面調用包函文件失敗,繼續向下執行,返回一條警告

 

59.什么是時間戳如何取得當前時間戳?

時間戳是從1970年1月1日 00:00:00到指定日期的秒數。

獲取當前時間戳:time()

 

60.了解XSS攻擊嗎如何防止 ?

XSS是跨站腳本攻擊,首先是利用跨站腳本漏洞以一個特權模式去執行攻擊者構造的腳本,然后利用不安全的Activex控件執行惡意的行為。

使用htmlspecialchars()函數對提交的內容進行過濾,使字符串里面的特殊符號實體化。

 

61.一個字節占多少bit ? 一個IPv4地址占幾個字節一個IPv6地址呢?

一個字節占8bit,一個IPV4占用4字節,一個IPV6占用16字節。

 

62..M ADSL寬帶連接理想情況下最大下載速度是多少KB/s  ?

256KB/s

 

63.常見的英文提示

145.Fatal error: Call to undefined method ge_user() in /website/index.php on line 39

調用了未定義的方法ge_user(),檢查程序中有沒有定義此方法

 

146.Fatal error: Class client not found in /website/index.php on line 173

類client沒有找到,檢查文件中有沒有client類,或者有沒有包含client類文件

 

Warning: Cannot modify header information - headers already sent by (output started at /website/index.php:1) in /website/index.php  on line 3

提示文件前面有輸出,檢查是否有輸出,或者編碼

 

148.Warning:session_start(): open(/website/tmp/sess_47e067121facf033785f9a1cb16d243b,   O_RDWR) failed: No such file or directory (2) in /website/index.php on line  10

沒有找到文件或目錄,檢查文件是否存在

 

149.Parse error: syntax error, unexpected T_STRING in /website/index.php on line 18

18行語法錯誤,檢查語法

 

150.Warning:fopen(welcome.txt) [function.fopen]: failed to open stream: No such file or directory in /website/index.php on line 2

沒有找到welcome.txt文件,檢查文件是否存在

 

64. HTTP協議中GETPOSTHEAD的區別?

HEAD: 只請求頁面的首部。

GET: 請求指定的頁面信息,並返回實體主體。

POST: 請求服務器接受所指定的文檔作為對所標識URI新從屬實體。

(1)HTTP 定義了與服務器交互的不同方法,最基本方法是 GET 和 POST。GET 適用於多數請求,而保留 POST 僅用於更新站點。

(2)在FORM提交時,如不指定Method,則默認為GET請求,Form中提交數據將會附加在url之后,以?分開與url分開。字母數字字符原樣發送,但空格轉換為“+“號,其它符號轉換為%XX,其中XX為 該符號以16進制表示的ASCII(或ISO Latin-1)值。GET請求提交的數據放置在HTTP請求協議頭中,而POST提交的數據則放在實體數據中;

GET方式提交的數據最多只能有1024字節,而POST則沒有此限制。

(3)GET 這個是瀏覽器用來向服務器請求最常用的方法。POST這個方法也是用來傳送數據的,但是與GET不同的是,使用POST的時候,數據不是附在URI后面傳遞的,而是要做為獨立的行來傳遞,此時還必須要發送一個Content_length標題,以標明數據長度,隨后一個空白行,然后就是實際傳送的數據。網頁的表單通常是用POST來傳送的。
請寫出PHP5權限控制修飾符(3)
答:public(公共),private(私用),protected(繼承)

(-3-)

65.幾個重要的php.ini選項

Register Globals

php>=4.2.0,php.ini的register_globals選項的默認值預設為Off,當register_globals的設定為On時,程序可以接收來自服務器的各種環境變量,包括表單提交的變量,而且由於PHP不必事先初始化變量的值,從而導致很大的安全隱患。

safe_mode

安全模式,PHP用來限制文檔的存取、限制環境變量的存取,控制外部程序的執行。啟用安全模式必須設置php.ini中的safe_mode = On

1、限制文件存取

safe_mode_include_dir = “/path1:/path2:/path3″

不同的文件夾用冒號隔開

2、限制環境變量的存取

safe_mode_allowed_env_vars = string

指定PHP程序可以改變的環境變量的前綴,如:safe_mode_allowed_env_vars = PHP_ ,當這個選項的值為空時,那么php可以改變任何環境變量

safe_mode_protected_env_vars = string

用來指定php程序不可改變的環境變量的前綴

3、限制外部程序的執行

safe_mode_exec_dir = string

此選項指定的文件夾路徑影響system、exec、popen、passthru,不影響shell_exec和“` `”。

disable_functions = string

不同的函數名稱用逗號隔開,此選項不受安全模式影響

magic_quotes

用來讓php程序的輸入信息自動轉義,所有的單引號(“’”),雙引號(“””),反斜杠(“\”)和空字符(NULL),都自動被加上反斜杠進行轉義

magic_quotes_gpc = On 用來設置magic quotes 為On,它會影響HTTP請求的數據(GET、POST、Cookies)

程序員也可以使用addslashes來轉義提交的HTTP請求數據,或者用stripslashes來刪除轉義

 

50.PHP的網站主要攻擊方式有哪些?

1、命令注入(Command Injection)

2、eval注入(Eval Injection)

3、客戶端腳本攻擊(Script Insertion)

4、跨網站腳本攻擊(Cross Site Scripting, XSS)

5、SQL注入攻擊(SQL injection)

6、跨網站請求偽造攻擊(Cross Site Request Forgeries, CSRF)

7、Session 會話劫持(Session Hijacking)

8、Session 固定攻擊(Session Fixation)

9、HTTP響應拆分攻擊(HTTP Response Splitting)

10、文件上傳漏洞(File Upload Attack)

11、目錄穿越漏洞(Directory Traversal)

12、遠程文件包含攻擊(Remote Inclusion)

13、動態函數注入攻擊(Dynamic Variable Evaluation)

14、URL攻擊(URL attack)

15、表單提交欺騙攻擊(Spoofed Form Submissions)

16、HTTP請求欺騙攻擊(Spoofed HTTP Requests)

(-4-)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM