我有兩種形式將數據添加到數據庫。第一種形式要求提供基本的細節(姓名,電子郵件,電話等)並存儲它們。更進一步,用戶可以將選項添加到他們的賬戶(例如接收通訊,接收促銷等)直接從POST值設置SESSION變量
第二種形式使用會話變量來驗證用戶是誰:當他們登錄或註冊時,他們的電子郵件地址設置爲會話變量,像這樣:
$_SESSION['buyer_email'] = $_POST['email'];
但是我所有的被提交到數據庫中的數據使用PDO其進行消毒它在提交之前,所以我的問題是:
是上述代碼行可安全使用?它並沒有像這樣被消毒,雖然我不能想到我頭頂上的任何東西都是他們以任何方式操縱這個直接的POST - > SESSION?
使用PDO提交數據,然後從數據庫中檢索電子郵件並將返回的值設置爲會話變量或者這是多餘的和不必要的,會更好嗎?
最好不要相信用戶輸入,並在將它設置爲會話變量之前檢查'$ _POST ['email']'中是否有正確的電子郵件(格式)。 – djot
您使用放入會話中的值的任何地方都是一個問題。規則#1 - 驗證輸入,逃逸輸出。 – Shazbot
所以你說我應該做的東西*與郵政價值(如我懷疑!) - 即時通訊做的所有正常的東西到電子郵件地址(例如格式,PDO的東西等),那麼它是有道理的將會話變量從通過檢查並進入數據庫的值中設置? – Giovanni