有點PHP的/ MySQL的新手在這裏...PHP/MySQL的 - 用於顯示名稱/用戶名/密碼安全字符,與PDO
我已經建立了使用MySQL數據庫基於PHP的網站用於存儲用戶信息,如顯示名稱,用戶名和密碼。
我一直在學習關於轉義,準備的語句等,以及如何防止像「bobby」這樣的SQL注入); drop table users--「。
我正在使用PDO準備語句從表單獲取用戶輸入,以便將它們註冊到數據庫中。不過,我需要知道的幾件事情:
由於我使用預處理語句,用於顯示名稱,用戶名, 密碼等,是沒有問題啊,讓特殊字符,如 @,#, $,甚至是「單」或「雙」引號?那麼空間怎麼樣, 國際字符,帶有口音的字符,或者♥ ?當我詢問是否允許這些字符是「好的」時,我是 想知道是否存在進一步的安全風險,可能會出現 允許在用戶名中使用引號或括號,或者使用大寫或斜體的HTML標籤 ?
如果它是好的,讓最特殊字符,但不能一些:是 有任何具體的「危險」人物(在MySQL的範圍內) 我絕對需要做違法嗎? (我覺得報價可能適合 這一議程,但我對得到的混合信號。)
如果我讓人物的典型外「字母數字 和下劃線」的範圍,是否有任何陷阱我可能會遇到後面的 (在MySQL,SQL或PHP中)允許奇怪的字符?在顯示用戶名時,我需要以某種方式使html標籤顯示爲字符串,而不是實際的 標籤?或者,我需要在用戶的用戶名中跳過 引號,只要我想與他們查詢? 或者沒有這個問題,因爲我將在PDO中使用準備好的語句 ?
做喜歡的字符集UTF8或UTF16進來的任何地方,在做它,所以我 可以接受的顯示名稱和用戶名的範圍最廣,而 仍然確保這些字母可以在我的網站被渲染?
我知道有一些西裏爾字母看起來與 英文字母相同。我曾經直接複製這些MS Word,並在我的用戶名中使用 。我意識到這些可以被用來感知冒充其他成員,只需要換一個 英文「a」作爲西里爾文的「a」。如果用戶不熟悉alt-code,可能會難以用 來搜索♥的用戶名。這個 應該是一個問題嗎?你對此有何看法?
在此先感謝誰可以給我一些這方面的見解。
請將您的帖子限制在一個問題 –