2011-12-27 13 views
0

私はcURLを介してAPIに接続するための小さなスクリプトを作成しましたが、スパムを防ぐために着信cURL接続を制限する方法を知る必要があります。cURL接続を制限する方法

どうすればいいですか?

<?php 

function shorten_url($urltoshorten) { 

$url = 'http://nn.pe/api.php?url='.$urltoshorten; 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 
// what to post 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
$result = curl_exec($ch); 
curl_close($ch); 

return $result; 

} 

?> 
+0

ここに小さなスクリプトを表示してもよろしいですか? –

+0

私のAPIから情報を要求するコードで編集します。とにかく私はこれによって作られた接続を制限することができますか? – HarryBeasant

+0

クライアントがいくつかの資格情報を使用して承認するようにします。または、着信要求を追跡し、特定のしきい値、たとえば時間当たり10回を超えた後にそのIPからの要求をブロックします。 – Pradeep

答えて

1

あなたは使用することができます。curl_set_opt(CURLOPT_MAXCONNECTS, 10);あなたはカールによって行われた接続を制限します。または、テーブルを作成し、接続を要求するIPの記録を保持することもできます。

これが役に立ちます。

+0

私がペーストしたスクリプトはリクエスタ側にあり、人々が最大限の接続を変更できるようにするために、あなたはそこに置くことができるでしょうPHPのAPIに行くと、その設定は、毎時10分、最大接続するのですか? – HarryBeasant

+0

これは、接続が閉じられるまで、最小または時間ではありません。 CURLOPT_CONNECTTIMEOUTは、接続中に待機する秒数として使用できます。 – AlphaMale

+0

最大値を1000のような大きな数値に設定すると、どのような欠点がありますか?メモリ使用量ですか?また、これはキャッシュのサイズを制限していますか?同時接続数も制限されますか? – CMCDragonkai