2016-04-24 17 views
0

私は情報を保存するためのカスタムの保存ページを作っています。だからここユーザー名とパスワードのセキュリティについて

<form action="files/form.php" method="post"> 
      <input type="text" name="username" placeholder="Username" value="" autocomplete="off"> 
      <input type="password" name="password" placeholder="Password" value="" autocomplete="off"> 
    <input name="submit" value="Send" type="submit"></input> 
</form> 

は、私はそれが形は、それが含まれている

form.phpファイルに行く送られるMySQLのdatabase.Whenに保存されている既成のユーザー名とパスワードに設定されている形でありますユーザーが自分の情報を入力するフォーム

<?php 
    $user = $_POST["username"]; 
    $pass = $_POST["password"]; 
?> 
<?php if ($user == "Admin" && $pass == "12345"){ ?> 
    form.php content goes in here 
<?php }else{ ?> 
    <span>Wrong password</span> 
<?php } ?> 

ここでの主な質問は実際には安全ですか?または私は私がログインしているユーザーを維持する予定の方法は、ユーザーが訪問ログアウト刚性$ _SESSION$ユーザー$パスワードを維持することですより良い方法これを行うには

を調べる必要があります.phpこれがクリアされますセッション

私のコードは実際に動作します。

これが安全かどうかを知りたいだけですか? 注:あなたがホストを共有している場合ユーザーパスワードは一瞬のためにプレースホルダーです、それはここでの問題12345

+0

データベースにユーザー名とパスワードを保存していますが、ログインはif文のハードコードされた値に対して検証されますか?セットアップを理解していない。 – JazzCat

+1

phps password_verify関数を見るためにハッシュ化されたパスワードとsaltetパスワードのみを保存し、HTTPSを使用する必要があります。 –

+0

@ジャズキャットそのちょうどプレースホルダー、私はそれを行う前に – Innervisions

答えて

1

も文句を言わないが、主要なリスクである(誰でもソースコードへのアクセスを獲得した場合ということです他のユーザー/サイトと)パスワードが何であるかを見ることができます。

パスワードを保存するには、一方向ハッシュを使用することをお勧めします。つまり、暗号化されたバージョンのパスワードのみが保存されます。これは通常、暗号化された形式でデータベースにパスワードを格納しているので、ユーザーの入力を(同じ方法で)暗号化し、暗号化されたフォームをデータベースのものと照合します。

私は、少なくとも私が何を意味するか説明するのに役立つはずであるデータベースを使用するようにあなたの答えを拡張しませんが、ここではそれが静的に設定されている:私はここにSHA1の暗号化を使用していた

<?php 
    $user = $_POST["username"]; 
    $pass = $_POST["password"]; 
?> 
<?php if ($user == "Admin" && sha1($pass) == "8cb2237d0679ca88db6464eac60da96345513964"){ ?> 
    //form.php content goes in here 
<?php }else{ ?> 
    <span>Wrong password</span> 
<?php } ?> 

注意がありますこれ以外のplenty of others to choose fromもあります。また8cb2237d0679ca88db6464eac60da96345513964は、sha1("12345")によって返されるハッシュです。

追加:

コメントで述べたように、SHA1はもはや推奨され、私は構文を簡単にするためにここでそれを使用します。運用環境では代わりにpassword_hash with bcryptを使用することを検討してください。

希望すると便利です。

+0

ソースコードにアクセスできる場合は、既に大きな問題があります。 – ceejayoz

+0

SQLインジェクションについて –

+0

@SanoojT質問にSQLが表示されていません。 – ceejayoz

関連する問題