1

こんにちは、ユーザー入力を検証しようとしていますが、正しい方法がわかりません。

ユーザー作成フォームの名と姓のフィールドを検証したいと考えています。Zend フレームワークで PHP を使用しているため、バリデーターを作成します。いくつかの調査を行った後、最初と最後にスペースを入れずに、すべての UTF8 文字を実際に許可する必要があると思います。正規表現についてはわかりませんが、後で見つけることができます.phpのpreg_matchを使用する可能性が高いです.

これらの詳細は、姓に sn フィールド、名に givenName を使用して OpenLDAP に保存しています。名前を制限するにはどうすればよいですか?OpenLDAP の長さに制限はありますか、受け入れる文字を確認する必要がありますか、それともすべての文字を受け入れますか?

名と姓を検証する必要がありますか、それともユーザーに必要なものを入力させるだけですか?

「text.text」で構成されるユーザー名用の別のフィールドを使用しています。テキストは A-Za-z 文字です。

ちょっとしたガイダンスが必要なだけなので、コードを投稿していません。ここでのベストプラクティスは本当にわかりません。

4

2 に答える 2

1

名前の検証は悪い考えです。特に西洋以外のテキストも許可したい場合は、名前で何が許可されるかについての普遍的な規則はありません。

ディレクトリがユーザー入力の文字セットを理解するという保証がないため、これは LDAP に関しては課題を提示します。ただし、これには簡単な解決策があります。base64_encode()値を LDAP に保存する前に、値を保存するbase64_decode()ことです。

于 2012-07-06T09:19:47.730 に答える
1

名前を検証する必要はありません。ディレクトリ サーバー スキーマは、 、 、 を含むすべての属性の構文を指定しgivenNameますsn。サーバーは、提示された名前を適切にエンコードします。DirectoryString値がスペースで始まるか終わる場合、サーバーは値を base64 エンコードして保存します。

実際には制限がありますが、LDAP クライアントは、サーバーが属性値の長さをゼロ以外にする機能を備えていると想定すべきではありません。一部の属性構文は長さがゼロ以外と定義されていますが( などDirectoryString)、上限が定義されていないため、クライアントはサーバーが上限を強制していると想定しないでください。

こちらもご覧ください

于 2012-07-06T09:46:34.390 に答える