2016-06-23 8 views
2

私はFirebaseのJS SDKをしようとしています、当然、私は提供された例をピックアップしにダ​​イビングを始めた。Firebaseの電子メール認証の例は安全ですか?

The example code Firebaseにホスティング、中に電子メール記号のためです。私は驚か何

は、すべてのパスワード、コンプライアンスは、クライアント側作られていることである。

... 
    function toggleSignIn() { 
     if (firebase.auth().currentUser) { 
     // [START signout] 
     firebase.auth().signOut(); 
     // [END signout] 
     } else { 
     var email = document.getElementById('email').value; 
     var password = document.getElementById('password').value; 
     if (email.length < 4) { 
      alert('Please enter an email address.'); 
      return; 
     } 
     if (password.length < 4) { 
      alert('Please enter a password.'); 
      return; 
     } 
... 

何mecanism eと空の文字列の下で、コンソール内のコードを開くチェックを外すと、登録されるのを防ぎます-mail/password?

セキュリティベースのセキュリティを検索すると、HTTPSですべてが作成され、サインオンしていない人がDBを編集できないようにサーバーサイドのルールをカスタマイズできることがわかりますが、これはどうですか?

答えて

4

リンク先のサンプルコードは、Firebase email+password authentication providerのドキュメントに記載されています。 の代わりに、サンプルコードを単体での代わりにドキュメントページを読むことをお勧めします。

I短いパスワード(123)を持つユーザを作成しようとすると、Firebase認証サーバで応答:

{コード:「AUTH /弱いパスワード」メッセージ:「パスワードがなければなりません6文字以上」}

ご覧のとおり、サーバーはパスワードの有効性も検証します。

クライアント側とサーバー側の両方の検証を実行することは非常に一般的です。

  • 検証あなたが言ったように、彼らは、周りのハッキングすることができないことを保証するために、サーバー上で実行する必要があります。
  • クライアント側の値も検証することで、より良いユーザーエクスペリエンスを確保できます。この例では、ユーザーが無効な電子メールアドレスを入力した場合にサーバーへのラウンドトリップの必要性を防ぐことができます。
+0

あなたのリンクは、Android版のドキュメントを指しています。あなたは私を[ウェブ版](https://firebase.google.com/docs/auth/web/password-auth)に誘導するつもりだったと思います。 。私はあなたの助言思考を思い出します。 – DrakaSAN

+0

うん、私はJavaScriptでテストしたが間違ったリンクをコピーした。今修正されました。 –

+0

Firebaseの唯一の要件は、6文字でなければならないということですか?これは、aaaaaaのようなパスワードが受け入れられるのに十分であることを意味しますか? –

関連する問題