0

私はこのようなことを始めたばかりで、これは簡単な質問かもしれませんが、APIがWebサイトからのものであることを検証したいと思います。

ですから、私は自分のウェブサイトを持つ会社の再販業者です。すべてのユーザーは私のウェブサイトを通じて主要な会社のウェブサイトに登録されています。つまり、ユーザー名/パスワードは会社のウェブサイトに関連付けられています。今、私は自分のウェブサイトに登録ユーザーだけに見せたいものをいくつか持っています。また、任意のユーザーのユーザー名とパスワードの組み合わせをチェックするAPIがあり、(file_get_contents)を使用すると、次のメッセージのようになります。

成功した場合:

***<?xml version="1.0" ?> 
  <!DOCTYPE ValidateUser (View Source for full doctype...)> 
- <ValidateUser>
  <Customer>james</Customer> 
  <Result>Success</Result> 
  </ValidateUser>***

または失敗した場合:

***<?xml version="1.0" ?> 
  <!DOCTYPE ValidateUser (View Source for full doctype...)> 
- <ValidateUser>
  <Customer>james</Customer> 
  <Result>Failed</Result> 
  <Reason>User/Password combination unknown</Reason> 
  </ValidateUser>***

それが状況でした。そして、上記のメッセージをチェックまたは検証できるifステートメントを使用してphpコードを作成することを考えていました。これに基づいて、ユーザーが自分のWebサイトの特定のページにアクセスすることを許可または拒否できます。

それがあなたにとって理にかなっていることを願っています。前もって感謝します。

4

2 に答える 2

0

PHP SimpleXMLを見てください。それを使用すると、解析はかなり簡単になるはずです。

次のようなコードでうまくいくはずです。

$result = file_get_contents('http://www.example.com/validate?username=john&pwd=mypwdhash');
$simpleXML = new SimpleXMLElement($result);

if ($simpleXML->ValidateUser[0]->Result == "Success"){
   // success
} else{
  // fail
}

または、XML 文字列内で「success」という単語を検索することもできます。

余談ですが、この方法を使用してユーザーを認証することは、ユーザー名とパスワード ハッシュに言及する GET リクエストが含まれているため、あまり安全ではありません (平文のパスワードではなく、パスワード ハッシュを使用していると思いますよね?)。

于 2012-06-12T14:20:14.833 に答える
0

おそらく聞きたくないでしょうが、パスワードを共有するこの方法は、問題のサード パーティ サイトが提供する優れた設定ではありません。これは基本的に、ユーザーが他のサイトのパスワードをあなた (私が正しければ第三者) に入力していることを意味します。あなたの側にユーザ​​ーデータへの認証されたアクセスがある場合、パスワードを共有するのではなく、おそらくこれに openAuth (http://www.oauth.net) を使用する必要があります...

私は必ずしもあなたがそのことを彼らにアドバイスすべきだと言っているわけではありませんが (それはおそらくあなたの仕事に費用がかかるからです)、私はそれについて考えます. 側面にセキュリティ違反があった場合、パスワードの一部にアクセスできたので、指があなたを指し示す可能性があります。

于 2012-06-12T14:53:54.943 に答える