ここでPHP/MySQLの初心者のビットと表示名/ユーザー名/パスワードのための安全な文字...PHP/MySQLの - PDO
私はMySQLデータベースを使用してPHPベースのサイトを構築してきましたユーザ名、ユーザ名、パスワードなどのユーザ情報を格納するためのものです。
私はエスケープ、準備された声明など、そして "bobby"のようなSQLインジェクションを防ぐ方法を学んでいました。
私は、PDOプリペアドステートメントを使用してフォームにユーザー入力を取得し、DBに登録します。しかし、私はいくつかのことを知っている必要があります:私は @、#などの特殊文字を許可するために、私はプリペアドステートメントを使用しておりますので
を、表示名、ユーザ名、 パスワードなどのために、それは大丈夫です、 $、あるいは '一重引用符'や '二重引用符?スペースについては、 の国際文字、アクセント付きの文字、または♥ のようなものはどうですか?これらの文字を許可するのが「大丈夫」かどうかを尋ねると、 セキュリティリスクがさらに発生する可能性がありますか? 人々のユーザー名に引用符や括弧を使用できないようにします 太字または斜体のhtmlタグですか?
最も特殊文字を許可しても大丈夫であれば、なく一部:(MySQLの範囲の)任意の特定の「危険」の文字は、私は絶対に違法にする必要があり がありますか? 、
を私は典型的な「英数字 とアンダースコア」範囲外の文字を許可した場合(私は引用符は、この議題 に合うかもしれないが、私はその上で混合された信号を取得しています。のように感じる)任意の落とし穴私はそこにあります後で (MySQL、SQL、またはPHPで)が奇妙な文字を許可しないことがありますか?私は 人のユーザ名を表示すると、何とか実際の タグではなく、htmlタグを文字列として表示する必要がありますか?または、私がそれらと照会したいときはいつでも、人々のユーザー名の中で 引用符をエスケープする必要がありますか? PDOで準備済みの文 を使用しているので、この問題はありませんか?
私は はまだ、これらのアルファベットは私のウェブサイト上でレンダリングすることができます確認しながら は、表示名とユーザ名の最も広い範囲を受け入れることができますか?それを作るには、UTF8またはどこかで来るUTF16のような文字セットを実行しますか。
私は 英語のものと同じに見えるいくつかのキリル文字があることを知っています。私はMS Wordからこれらをまっすぐにコピーし、私のユーザー名に を使用しました。キリル文字 "a"の場合は 英語の "a"をスワップアウトするだけで、これらの文字を他のメンバーに知覚的に偽装するのに、 することができます。誰かがalt-codeに精通していないかどうかを調べるには、♥のユーザー名が難しいかもしれません。 この を気にする必要がありますか?これについてあなたの意見は何ですか?
私はこれについていくつかの洞察を与えることができます誰にも先生に感謝します。
あなたの投稿を一度に1つの質問に限定してください。 –