2009-01-19 84 views

回答

4

我更喜歡能夠使用字母,數字和特殊字符來創建我的密碼。當網站拒絕使用特殊字符時,我真的很討厭它,特別是!@ $ *。

2

請允許所有O'Briens,O'Malleys,O'Reillys和其他撇號名字使用撇號!

12

請勿限制密碼字符。可用的字符越多,密碼就越安全。沒有理由禁止使用空格,例如在密碼中。

對於用戶名,取決於他們將顯示在哪裏。如果您打算爲用戶提供自己的個人資料網址,則您希望限制字符的數量比如果不是更多。

只是不要忘記在再次輸出時逃避用戶輸入。

4

你有什麼理由否認任何人物?您應該只允許所有內容,可能的空字符除外。當您在網站上打印用戶名時,您必須對用戶名進行編碼以避免跨站腳本問題,但即使您爲了安全起見過濾「危險」字符,您也應該這樣做。允許所有字符,尤其是密碼,大大增加了可用性(以及密碼方面的安全性)。另外,請記住,如果某些用戶的名字中有重音符(或者他們使用的是非拉丁字母,如中文或俄文),則可能需要輸入UTF8字符。

1

作爲絕對最小值,密碼應該允許您的目標語言環境中的鍵盤上的每個字符都可用。

3

如果你確實限制字符,那麼應該不是是爲了安全(例如防止引號,以防人們無法插入SQL)。你的代碼應該能夠處理輸入字符串中的任何字符,只要它們被髮送到某個地方就可以正確地轉義它們。但出於商業原因或出於某些其他實際原因(例如Zach的URL示例),限制它們是可以的。

2

您的應用程序是否會被任何非英語用戶使用?

至少允許歐洲人像áàéìì。

當然,如果它必須真正國際化,那麼你必須允許任何漢字和阿拉伯語等字符。

在我看來,如果你不想讓任何人生氣,你真的不能讓一個允許的角色列表。

如果您想爲安全起見而這樣做,我會建議在嘗試使用字符串而不是前置過濾之前轉義必要的字符。

2
  • 密碼字段應該允許任何字符(你只是無論如何湊了吧?)
  • 文本字段應該侷限於特定的字符(例如,[A-ZA-Z ])。否則,你將不允許需要(或想要)使用重音字符的人。從數據庫/處理事物的角度來看,您將會轉義或使用綁定來保存數據。
  • 如果你有一個特定的字段,你知道只能接受一個特定的字符集(商業原因,如JW所述)。例如,僅供美國觀衆使用的表單可能會限制爲郵政編碼的數字和短劃線。
2

也添加到其他人所說: 密碼:予取予求,但是哈希它們(當然)

用戶名:一切,除了可能的空間......或多個空格(即單個空間是好的,多於一個空間= 1空間)

+0

關於用戶名空間的好處。在具有公開個人資料的網站上,這尤其令人擔憂。 「JohnDoe」和「JohnDoe」似乎對用戶來說是同一個人。 – Rob 2009-01-19 21:43:10

1

不限制任何內容,如果你想給用戶自己的URL,可以使用數字ID或要求用戶使用URL。不要顯示用戶的用戶名,顯示他們的顯示名稱(應限制爲除危險的Unicode字符之外的任何內容)並在註冊後提出要求。

相關問題