鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ 獲取 GET/POST 參數(shù)時(shí),直接去除其前后得空格,會(huì)有什么隱患?

獲取 GET/POST 參數(shù)時(shí),直接去除其前后得空格,會(huì)有什么隱患?

以 PHP 為例,假定:有 getParam($name) 方法返回 $_GET[$name] 的值。

如果我在這個(gè)方法里,對(duì)所有 $_GET 值都直接做 trim 處理,會(huì)產(chǎn)生怎樣的隱患呢?

Ps:不傳遞空值、NULL、true/false。

回答
編輯回答
歆久

一般情況下是要過濾掉的,因?yàn)槿绻麉?shù)里面帶空格很多的話可能后面有更多未知的bug;即使你要傳空格也行啊 轉(zhuǎn)成實(shí)體標(biāo)簽,我覺得沒什么安全隱患,如果你非要保留空格可以具體按照你的業(yè)務(wù)邏輯來考慮

2017年6月3日 19:25
編輯回答
我甘愿

一般來說使用是沒有隱患的,要有的話,就是你的業(yè)務(wù)邏輯里面會(huì)出現(xiàn)空格,因?yàn)閠rim()的本身默認(rèn)就是去除左右空格 、tab 等空的

2018年9月14日 11:55
編輯回答
雨蝶

如果只是$_GET的話沒有隱患,而且非常支持這樣做!

2017年11月5日 20:02
編輯回答
憶當(dāng)年

如果指的是安全隱患?我覺得沒有安全隱患。
但是我不建議你這么做,我就是要傳 空格+字母呢。

看使用場(chǎng)景,如果你在寫一個(gè)通用的方法,比如你在寫一個(gè)框架通用的方法,是不是要 trim 就交給使用者自己來決定吧。
你只是寫一個(gè)業(yè)務(wù)邏輯 controller 里的方法,我覺得沒問題。

2017年9月26日 04:55
編輯回答
筱饞貓

我平常就是這么做的,這不是什么安全隱患,而是必要的過濾。

2018年9月2日 17:51