2010-09-23 37 views
0

恕我直言,是否必須修改POST/GET vars中的所有空格?

我最近聽說過這幾次。 在一些門戶網站上,我看到關鍵字開頭的空白時,返回空搜索結果,沒有空白空間它正在工作。

有些情況下,這可能是有害的嗎?

有人可以爲這種做法提供一個參數嗎?

回答

2

在幾乎所有情況下,清理輸入是有益的,因爲你不能相信你會得到什麼。但請注意,你不想總是盲目地去做。在某些情況下,您可能實際上需要一個前導空間或尾隨空間。 (例如,在密碼中)

+0

有關密碼的好說法=)! – holms 2010-09-23 22:55:56

0

清理用戶輸入的文本通常是一個好主意,通常包括刪除無關的空格,有問題的標點符號等等。這也可以包括用單個空間替換多個相鄰空間。

不用說,您應該通過適當地清理(預處理)用戶提供的文本來保護自己免受SQL和HTML注入攻擊。最簡單的方法是忽略標點符號;另一種方法是將標點符號轉換爲無害的轉義序列。

+0

保護帖子/獲得變量是我必須的。但是現在的問題主要是關於從一開始就修整空白字符串的問題。 – holms 2010-09-23 22:55:30

0

不,沒有任何問題,如果用戶的輸入需要空格,請不要修剪掉,但如果它們不是,我會建議你修剪空格。

例如,假設某人輸入了要拆分的多字字符串。

通常情況下,通過使用空格作爲分隔符來拆分它們,但是如果空格未被修剪,您可能會在開始時獲取空變量,也可能不會。這幾乎總會讓你猜測是否使用拆分字符串的第一個元素。如果你只是修剪空格,它確實使它變得更容易。否則,您將有大量代碼來確定拆分字符串的第一個元素是否爲有效條目。

「這個字符串」將被拆分成一個看起來像這樣的數組。

$string[0] = '' 
$string[1] = 'This' 
$string[2] = 'string' 

但「此字符串」簡直是

$string[0] = 'This' 
$string[1] = 'string' 

如果你正在做的字符串操作,你可能想要找出多少話是在一個字符串,第一種情況(上圖)將顯示你3,而後者會告訴你2,除非開始或結尾的空格是必須的,否則只有太多的東西需要尋找。

相關問題