2010-08-10 77 views
0

使用超級全球$_SERVER['PHP_SELF']的好處是什麼?

+3

我不知道你在問什麼。 – rook 2010-08-10 06:22:02

+0

沒關係,如果你不知道PHP。 – proyb2 2010-08-10 06:30:11

+0

請注意,如果您正在使用'$ PHP_SELF',關閉註冊全局變量:) – alex 2010-08-10 06:30:57

回答

14

$_SERVER['PHP_SELF']沒有(或不應該)包含域名。它包含腳本被調用的url的路徑組件。

它的用途主要是介紹跨站點腳本漏洞。

,你可以用它來填表標籤的action屬性:

<form method="post" action="<?=$_SERVER['PHP_SELF']?>"></form> 

如果我再打電話給你的頁面:

your-file-that-uses-php-self.php/("><script>eval-javascript-here</script>) 

這裏的一切在括號中url編碼,然後我可以將代碼注入您的頁面。如果我將該鏈接發送給其他人,那麼我將在您的網站的瀏覽器中執行該代碼。

編輯: 爲了使其安全免受XSS攻擊,使用htmlspecialchars

<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">...</form> 

編輯2:由於這$_SERVER變量已經被整個互聯網絡濫用,所以經常在那裏的例子,唐不要錯過閱讀您的HTML參考資料:由於該URI是最短的相對URI,因此您可以將action屬性留空:

<form action="" method="post" >...</form> 
+10

我喜歡這個部分*它的用途主要是介紹跨站點腳本漏洞* ...讓我的最後一個今天得到滿足! – alex 2010-08-10 06:32:01

+0

這就是爲什麼我切換到.NET進行Web開發的一部分。 :) – 2010-08-10 06:44:12

+6

很明顯,.Net是很好的證明。 – 2010-08-10 06:48:52

相關問題