2011-02-24 10 views
5

क्या PHP के पास रेल प्रामाणिकता टोकन का अपना संस्करण है?क्या PHP में रेल की तरह प्रामाणिकता टोकन है?

<meta name="csrf-token" content="<%= form_authenticity_token %>" /> 
<meta name="csrf-param" content="authenticity_token" /> 

यदि नहीं, तो समान कार्यक्षमता प्राप्त करने का सबसे अच्छा तरीका क्या है?

+0

यह CSRF सुरक्षा के लिए है। लेकिन सीएसआरएफ सुरक्षा आजकल विशेष टोकरी पैरामीटर के साथ, ऐसे टोकन के बिना किया जा सकता है। आप https://github.com/delight-im/PHP-Auth पर एक नज़र डालना चाहते हैं जो स्वचालित रूप से करता है। – caw

उत्तर

8

जब प्रपत्र के लिए outputting:

$token = md5(time() . rand(1,100)); 
$_SESSION['token'] = $token; 

<input type='hidden' name='token' value='<?=$token;?>'/> 

पोस्ट करने के बाद:

if(empty($_POST['token']) || $_POST['token'] !== $_SESSION['token']){ 
    exit("Bad token!"); 
} 
unset($_SESSION['token']); 
+0

रीपैप्चा जैसे कुछ का उपयोग करने के खिलाफ आप इसे कैसे रेट करेंगे? मैंने देखा कि ट्विटर अपने रजिस्टर फॉर्मों के लिए कैप्चा का उपयोग नहीं करता है <- इसलिए मुझे विचार मिला ... – Booski

+0

एक टोकन सीएसआरएफ हमलों से बचाता है, लेकिन कैप्चा गैर-मानव उपयोगकर्ताओं को बाहर करता है (और सीएसआरएफ से बचाता है)। आप किसके लिए खोज रहे हैं? –

+0

दोनों ... ट्विटर इसके साथ कैसे दूर हो जाता है? – Booski

संबंधित मुद्दे