2017-03-22 5 views
0

私は唯一のユーザーになる小さなウェブサイトを構築しています(私の資格情報はパスワード「mypassword」の「myuser」です)。ログインページで私はこの簡単な形式を持っています:PHP - セキュリティのためにこのシンプルなフォームを検証する必要がありますか?

<form method="post"> 
<p>Username: <input type="text" name="usr"></p> 
<p>Password: <input type="text" name="passwd"></p> 
<p><input type="submit" value="Login"></p> 
</form> 

このような形式を検証するのは安全ですか?

// After checking if the request is POST... 
if($_POST["usr"]=="myuser"&&$_POST["passwd"]=="mypassword") { 
    // Set the cookie and go to admin page... 
} else { 
    // Show login error... 
} 

それとも私は2つの$ _POST変数(例えばはhtmlspecialcharsまたはそのような何かでそれらをフィルタリングすることにより)に、いくつかのセキュリティ対策を適用する必要がありますか?ご覧のように、資格情報はデータベースに保存されず、これらの変数はコード内の他の場所で決して呼び出されないため、悪意のあるユーザーがSQLインジェクションまたはXSSでフォームをハックしようとしても危険はありません。

だから私は何かを逃したのですか?そのようなコードを残すことに潜在的な危険はありますか?

+2

これは間違いないと言っている戦闘家がいるだろうが、それは問題ない。 –

+0

ただし、ssl暗号化(https)を使用するように注意してください。 – arkascha

+0

*私はそのウェブサイトがオンラインではないことを意味する唯一のユーザー*になりますか? –

答えて

0

私はそれが良いと思う、ハーフ機能を追加することができます&何かを強引な攻撃を防ぐためにもう少しセキュリティを確保する。 :)

+0

ブルートフォースについては、サイトがライブになる前にreCAPTCHAを追加します。 – Speedhoven

-2

phpでは、mysql_real_scape_string()を使用できます。この関数は、特殊文字を削除する文字列を変更するパラメータを持っています。この関数は安全な文字列を返します。この文字列をSQLクエリに実行できるようになりました。

+0

質問を読む –

+0

このフォームにはデータベースが接続されていないため、ユーザーがSQLクエリをフォームに入力しても何も起こりません。 – Speedhoven

関連する問題