酷!學園

技術討論區 => 程式討論版 => PHP程式設計討論區 => 主題作者是: fell0206 於 2008-09-27 22:28

主題: 字串檢查
作者: fell02062008-09-27 22:28
各位大大,以登入登入介面來說,一般都會做輸入的檢查,小弟有幾個問題:
1.檢查的方法可以用javascript,但javascript較容易裡破解,所以一般都會在PHP在做一次檢查,既然這樣,那javascript的檢查是不是可以不要?
2.以PHP檢查的方法有很多,一般都ereg之類的,那如果把字串拆成字元,在轉成ASCII,在比對是否有在某範圍內,不知這樣和ereg比較來,有沒有比較好和比較快?
請各位大大指點指點! Thank you~
主題: 回覆: 字串檢查
作者: Yamaka2008-09-27 22:44
各位大大,以登入登入介面來說,一般都會做輸入的檢查,小弟有幾個問題:
1.檢查的方法可以用javascript,但javascript較容易裡破解,所以一般都會在PHP在做一次檢查,既然這樣,那javascript的檢查是不是可以不要?
2.以PHP檢查的方法有很多,一般都ereg之類的,那如果把字串拆成字元,在轉成ASCII,在比對是否有在某範圍內,不知這樣和ereg比較來,有沒有比較好和比較快?
請各位大大指點指點! Thank you~

1. 在 javascript 可以先過濾一些簡單的規則, 例空白, 純英文字母, 字串長度...等等

2. PHP端的檢查喔~ 看什麼情形吧, 一般都會先編碼(上面1的檢查還是要再PHP做一次), 例如 md5, sha1..., user傳來的資料編碼後直接比對是否相同
主題: 回覆: 字串檢查
作者: fell02062008-09-27 23:32
...例如 md5, sha1..., user傳來的資料編碼後直接比對是否相同
感謝大大的指點!!
不知大大是否是指密碼的部份?
請大大在指點指點! Thank you~
主題: 回覆: 字串檢查
作者: Yamaka2008-09-27 23:43
以登入的情形來說, PHP端當然就是要比對 user 輸入的密碼對不對



在建立 user 資料時都會要求 user 選一個密碼啊

然後在存入資料庫時先將密碼做編碼(md5 or sha1)

user 登入時輸入的密碼用同樣的方式編碼

並跟資料庫的密碼(已編碼過的)直接比對

這樣就不用如第一篇所說的還要拆字什麼的..
主題: 回覆: 字串檢查
作者: fell02062008-09-28 10:33
感謝大大的指點!
...
然後在存入資料庫時先將密碼做編碼(md5 or sha1)
user 登入時輸入的密碼用同樣的方式編碼
並跟資料庫的密碼(已編碼過的)直接比對
...
看來該方法似乎挺普遍的(網路上大多數的文章也這樣說),那小弟在問一個題題,username的檢查,大多數似乎都用ereg,這類正規運算去檢查,不知要檢查那些,小弟只想出"<([^>]|\n)*>",不知還有沒有?
請大大在指點指點~Thank you!
主題: 回覆: 字串檢查
作者: Yamaka2008-09-28 10:48
看來該方法似乎挺普遍的(網路上大多數的文章也這樣說),那小弟在問一個題題,username的檢查,大多數似乎都用ereg,這類正規運算去檢查,不知要檢查那些,小弟只想出"<([^>]|\n)*>",不知還有沒有?
請大大在指點指點~Thank you!

要過濾這些字元, 通常會在 javascript 輸入框就先處理, 非允許的字元就無法打進輸入框

在 PHP 端檢查的話, 不要檢查有沒有不該出現的字元, 可以去檢查是否都是允許出現的字元

這樣會比較簡單, 只要訂出哪些是合法的, 其他就通通不合法  ;D

javascript 端的檢查也可以用上面 php 的方式  :D
主題: 回覆: 字串檢查
作者: micmic32008-09-30 09:43
ereg 以後會不支援,改用 preg會比較好