बहुत कुछ googling के बाद निष्कर्ष निकाला!
चरण -1: सभी वेब सेवा के लिए टोकन सिस्टम जनरेट करें:
उत्पन्न टोकन:
<?php
session_start();
$token = md5(rand(1000,9999)); //you can use any encryption
$_SESSION['token'] = $token; //store it as session variable
?>
चरण -2:
: यह ajax कॉल भेजने जबकि प्रयोग करें
var form_data = {
data: $("#data").val(), //your data being sent with ajax
token:'<?php echo $token; ?>', //used token here.
is_ajax: 1
};
$.ajax({
type: "POST",
url: 'yourajax_url_here',
data: form_data,
success: function(response)
{
//do further
}
});
चरण -3 : अब,, के साथ ajax हैंडलर PHP फ़ाइल को सुरक्षित करते हैं
session_start(); //most of people forget this while copy pasting code ;)
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
//Request identified as ajax request
if(@isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']=="http://yourdomain/ajaxurl")
{
//HTTP_REFERER verification
if($_POST['token'] == $_SESSION['token']) {
//do your ajax task
//don't forget to use sql injection prevention here.
}
else {
header('Location: http://yourdomain.com');
}
}
else {
header('Location: http://yourdomain.com');
}
}
else {
header('Location: http://yourdomain.com');
}
नोट: नेस्ट IF..ELSE लिए हमें खेद है बढ़ जाती understandability। आप ईएलएसई में सभी तीनों को सरल बना सकते हैं। 85% सुरक्षा बढ़ा दी!
स्रोत
2013-08-01 09:25:09
तो किसी को इस पृष्ठ को XMLHttpRequest के साथ कैसे एक्सेस करना चाहिए? क्या आप एक ही मूल नीति के बारे में जानते हैं? – rook
मुझे एक ही मूल नीति के बारे में पता है। XMLHttpRequest के लिए जांच यह पता लगाने के लिए की जा सकती है कि स्क्रिप्ट को AJAX (यानी अपनी खुद की स्क्रिप्ट) के माध्यम से बुलाया गया है या कोई व्यक्ति इस ब्राउज़र पर अपने ब्राउज़र को इंगित करता है या नहीं। अपनी साइट के फ़िरबग कंसोल से स्क्रिप्ट को कॉल करना एक अलग कहानी है, हालांकि। स्पष्ट, संक्षिप्त और प्रभावी उत्तर के लिए – middus