iT邦幫忙

0

請問為什麼在php裡傳送「"」就會在前面加上「/」呢?

小弟在公司架設新的環境下
不管是在post還是在get,只要傳送字串裡有「"」或是「'」就會變成「/"」或是「/'」
像是卡到鬼牆一樣…
就像圖片裡一樣

這是傳送前

這是傳送後

產品要上市了卻一直沒辦法解決這問題…
求前輩救助…

看更多先前的討論...收起先前的討論...
ghyzsing提到:
產品要上市了


好可怕搖頭
wiseguy iT邦超人 1 級 ‧ 2015-01-28 00:37:11 檢舉
才要說這句,就被海綿大搶先一步了 .....
要上市的軟體,RD 居然不知道跳脫字、SQL injection、magic_gpc ... 這些基礎,實在好可怕好可怕好可怕 (因為太可怕,所以講三次)...
好厲害的老闆!!哈哈

產品上線後,已經做好「簽下」維護合約的準備了
(就跟好萊塢電影一樣,片尾放個彩蛋片段,表示還有下一集喔!)

這樣年復一年的 Bug => DeBug,生意源源不絕!賺不完啊開心
fillano iT邦超人 1 級 ‧ 2015-01-28 09:15:16 檢舉
好可怕好可怕好可怕...來跟一下,不過真的很誇張

搖頭搖頭搖頭
wiseguy提到:
跳脫字

我以為海綿兄想說:為什麼不問神奇海螺呢偷笑
fillano提到:
好可怕好可怕好可怕...來跟一下,不過真的很誇張

老鷹也來 好可怕~好可怕~好可怕~ 搖頭搖頭搖頭
newkevin iT邦高手 1 級 ‧ 2015-01-28 11:35:56 檢舉
要體諒人家的苦衷
只是學過
忘記而已
然後執著
輸入甚麼
就應該出甚麼
忘記初心 睡覺

2 個回答

22
fillano
iT邦超人 1 級 ‧ 2015-01-27 22:50:48
最佳解答

你用的php版本?看起來你開啟了「magic_quotes_gpc」選項...這個選項在PHP5.3會被標註成deprecated,而PHP5.4就會被移除。所以你大概是用PHP5.2或更早的版本?

通常為了安全,會建議「至少」用mysql_real_escape_string、mysqli_real_escape_string函數來預處理輸入(GET/POST/COOKIE,所以叫做gpc)的資料,或是用PHP的filter等機制,而不仰賴magic_quotes來自動處理。所以PHP把這個選項拿掉了。

4
dasu88
iT邦研究生 5 級 ‧ 2015-01-27 21:32:57

你知道 跳脫字元嗎?
這是有安全性考量的…

我要發表回答

立即登入回答