0 レビュー
2 回答
php-GETリクエストを保護する良い方法はありますか?
PHPを学習できるようにサンプルサーバーを構築していますが、これがデータベースを保護するための良い方法かどうか疑問に思っていました。基本的に、私は自分のAPIキーを送信しています。これは何か役に立つことをしているのでしょうか、それとも簡単に克服できるでしょうか。
これがひどい場合、これに取り組む標準的な方法は何ですか?
以下はphpファイルです
<?php
//Check if insert function exists
$apiKey = "6dM7V0n5GqYJLTMibQDf2gA2a94h8hbF";
if(function_exists($_GET['insert']) && ($_GET['key'])==$apiKey) {
$id = $_GET['id'];
$first=$_GET['first'];
$last = $_GET['last'];
//If found, call the function inser with value as a parameter
$_GET['insert']($id,$first,$last);
}
?>
Webリクエストは次のようになります(iOSアプリから)。
NSURL*url=[NSURL URLWithString:@"http://localhost/Tutorials/index.php?insert=insert&id=9000&first=YOOOO&last=LOOOO&key=6dM7V0n5GqYJLTMibQDf2gA2a94h8hbF"];
//URL request
NSURLRequest*request=[NSURLRequest requestWithURL:url];
//Set the connection
connection = [NSURLConnection connectionWithRequest:request delegate:self];
if (connection) {
webData=[[NSMutableData alloc]init];
}
わからない
0
レビュー
答え :
解決策:
安全性がいかに低いかを示すために、このページをリクエストできます:
http://example.com/yourpage.php?insert=exec&id=rm+-rf+%2F&key=6dM7V0n5GqYJLTMibQDf2gA2a94h8hbF
一部の構成でブロックされない限り、これにより、PHPがサーバーにアクセスできる限りサーバーのドライブが消去されます(おそらくWebサイト全体になります)
代わりに、有効な関数のリストを作成し、IDでそれらを参照する必要があります。関数を配列に格納し、GETパラメーターが指すインデックスを取得します。
わからない
0
レビュー
答え :
解決策:
はい、安全ではありません。方法が非常に安全でないため、クライアントをHTTPS接続に強制するか、ある種の双方向暗号化を使用できます。
こちらをご覧ください:
http://tinsology.net/2009/06/creating-a-secure-login-system-the-right-way/
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。