0

私のウェブサイトのフォームのリダイレクトと検証の問題について、私は本当に助けを求めることができました.

入力された「パスワード」を入力値にリダイレクトすることに成功しましたが、ユーザーがパスワードを間違えた場合、404 エラーが発生します。これは正しいですが、ユーザーにとっては良いことではありません。

私の質問は、送信前に検証するパスワードのリストを使用して、サーバー上のtxtまたはxmlファイルに対してフォームを検証する方法はありますか?? そのため、ユーザーは 404 ではなく間違っている場合にアラートを受け取ります!

以下は現在動作するもののサンプルです。ご協力をお願いします!!

<html><head>
<SCRIPT TYPE="text/javascript">

function login() {
   if (validLogin()) {
      password = document.userInfos.password.value;
      self.location.href=
        ""+password+"";
      }
   }
function validLogin() {
   if (isBlank(document.userInfos.password.value)){
      alert("Can't be blank");
      document.userInfos.password.focus();
      return false;
      }
   return true;      
   }
function isBlank(s) {
   return (s == "");
   }

   function doKey(e) {
//check to see if the return key was pressed ...
if( event.keyCode == 13){ 
//call the login function ...
login();
//prevent the page from reloading ...
return false;
}
}

//listen for keypress events and then call doKey()
document.onkeypress = doKey;

</SCRIPT>

</head>

        <form  NAME="userInfos" >


<INPUT TYPE="password" NAME="password" LENGTH="20" style="color: #333333" size="23" >&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="button" style="color: #333333" onClick="login()" VALUE=" View ">
</form>

    </body>
</html>
4

1 に答える 1

1

クライアント側の JavaScript でパスワードをチェックしないでください。すべての訪問者は、「ソースの表示」を使用して使用可能なパスワードを取得できます。可能であれば、代わりに PHP スクリプト、CGI スクリプト、または htpasswd ファイルを使用して、サーバー上のパスワードを確認してください。

より良いオプションを許可しない無料の Web ホストを使用している場合は、URL に対して AJAX 要求を行い、ステータス コードを確認できます。

var prefix = "/~myusername/passwords/", suffix = ".html";
var url = prefix + document.userInfos.password.value + suffix;

var xhr = new XMLHttpRequest(); // need some more code to support IE 6
xhr.open('GET', url);

xhr.onreadystatechange = function() {

    if (xhr.readyState !== 4) {
        return;
    }

    if (xhr.status === 200) {
        // It's possible to grab user-specific settings from xhr.responseText,
        // (e.g. the URL to redirect to), but for simplicity's sake...
        location.href = url;
    } else {
        alert('Password incorrect');
    }

};

xhr.send();

ただし、次の制限事項に注意してください。

  • 保護された HTML ファイルは、ログイン ページおよびパスワード ファイルとは別のディレクトリに配置する必要があります。

  • そのディレクトリの名前は予測が難しいに違いありません

  • ユーザーのアクセス権を取り消すには、保護された HTML ファイルを含むディレクトリの名前を変更し、それに応じて他のすべてのユーザーのパスワードのファイルを更新する必要があります。

  • 保護されたファイルに直接リンクすると (ディレクトリの名前が変更されるまで) それらが公開され、さまざまな既知および未知の理由により、保護されたファイルが Google やその他の検索エンジンに表示される場合があります。

  • 力ずくのパスワード推測、ログ ファイルによるパスワードの公開に対する保護はありません。

于 2013-01-23T00:44:20.387 に答える