我有一個簡單的表單,使用用戶名和密碼登錄。我想申請一個白名單,只允許某些字符。我不知道是否有人需要這一點,但這裏是代碼來獲取用戶名和密碼:在用戶輸入上使用白名單
$stmt = $conn2->prepare("SELECT username FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$stmt->store_result();
我是否納入這樣的:
preg_replace("/[^a-zA-Z0-9_]/", "", $stringToFilter);
如果是這樣,我在哪裏有它在我的碼?如果用戶試圖輸入除白名單內的內容之外的內容,會發生什麼情況?
ADDED:好吧那麼如果它是在註冊期間,它使用INSERT來存儲用戶名和密碼呢?
//insert data
$stmt = $conn2->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
//bind the parameters
$stmt->bind_param('sss', $username, $email, $password);
這可能是您應該在註冊時強制執行的事情,而不是登錄時間。 (另外,您不需要將參數化查詢的輸入列入白名單,但不會執行插入操作。) – Amber 2012-04-09 22:53:13
用戶名中帶有連字符的用戶有什麼危害? – 2012-04-09 22:54:36
看添加位信息 – user1278496 2012-04-09 22:56:32