2011-12-27 64 views
0

我寫了一個小腳本通過捲曲連接到我的API,但是,我需要知道我可以限制進入捲曲的連接,以防止垃圾郵件。如何限制捲曲connetions

這怎麼辦?

<?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

你可以在這裏展示你的小腳本嗎? – 2011-12-27 11:14:37

+0

使用從我的API請求信息的代碼進行編輯。無論如何,我可以限制由此做出的連接? – HarryBeasant 2011-12-27 11:18:30

+0

使客戶端使用某些憑證進行授權。或者跟蹤傳入的請求,並在IP超過某個閾值(例如每小時10次)後阻止來自該IP的請求。 – Pradeep 2011-12-27 11:25:25

回答

1

您可以使用:curl_set_opt(CURLOPT_MAXCONNECTS, 10);限制你通過捲曲進行的連接。或者你可以創建一個表並記錄請求連接的IP。

希望這會有所幫助。

+0

由於我粘貼的腳本位於請求者一方,它將允許人們改變最大連接數,那麼你放在那裏的捲曲能夠進入PHP API,並設置最大連接10,每小時,分鐘? – HarryBeasant 2011-12-27 11:38:50

+0

它不是最小或小時,直到連接關閉。 CURLOPT_CONNECTTIMEOUT可用作嘗試連接時等待的秒數。 – AlphaMale 2011-12-28 05:01:17

+0

將最大值設置爲1000這樣的大數字有什麼可能的缺點?僅僅是內存使用情況?這也是限制緩存大小的權利?它是否也會限制併發連接的數量? – CMCDragonkai 2015-05-15 05:32:11