Helllo朋友允許用戶存儲在那裏data.now當我存儲數據笏所有關心我必須讓我的任何錯誤值不插入。或它沒有被黑客入侵表單數據
表單數據
回答
你在問什麼叫做輸入驗證,並且有關於它的a lot of information。
主要存在兩個部分:
- 確保用戶放在一些有用的東西。
- 確保用戶沒有放入有害東西。
前者通常是通過JavaScript在客戶端完成的(爲了獲得更平滑的用戶體驗和更少的回傳)。它應該重新在服務器端完成,以確保,因爲你永遠不應該信任用戶的輸入。基本上它涉及像正則表達式檢查電子郵件地址的格式,枚舉檢查下拉列表的值等東西。
後者必須完成服務器端,因爲您應該永遠不會相信用戶輸入。它涉及針對SQL注入攻擊的字符串轉義,針對緩衝區溢出攻擊的字段長度驗證(這些日子較少見)等。
其實際的衛生處理。 – RobertPitt 2010-12-19 13:04:54
首先,您需要了解大約2種安全手段。所以,當你刪除任何不必要的驗證缺陷後驗證數據
- 衛生
- 驗證
衛生是清潔的數據。
衛生包括刪除字符,如不可見的字符(空格,製表符,新行......),他們應該全面完成。
驗證後,您的數據,如if(strlen($_GET['key']) > 0)
,你會被插入數據到數據庫,但這樣做的方式取決於數據庫類型
PHP提供的功能,以逃避如mysql_real_espae_string()
數據此方法被稱爲數據庫轉義。
這真的幫了我很大的忙。我會在這方面做更多的研究。我只是在我的NAME字段中插入類似下面的文字。 。當我點擊提交時,它回顯我「你好」的消息..N同樣的東西存儲在mysql數據庫 – 2010-12-19 13:07:58
你永遠不應該改變數據從用戶插入到數據庫,你應該永遠保持原始的,除了在數據上執行mysql_real_escape_string。然後根據您使用數據的界面(如html頁面),在將數據顯示給用戶之前,您將轉義數據。這樣您仍然可以打開其他接口來處理數據,因爲有時輸入「
你必須給我們更多關於你想要做什麼的細節。我知道你有一個表單,並希望在發佈數據之前對其進行處理,但是我不知道你想要做什麼。 – 2010-12-19 12:56:43
您需要添加一些關於「錯誤值」組成的詳細信息以及存儲數據的位置。 – 2010-12-19 12:57:03
你應該把它分成兩個單獨的問題。 「獲取你想要的數據」和「避免安全問題」是不同的問題。 (後者,BTW,雖然已經有很多重複,但是,搜索一下)。 – Quentin 2010-12-19 12:59:02