Recientemente comencé a profundizar en la función ajax de jquery. He hecho muchas mejoras, pero estoy inseguro en un punto. Cómo proteger mis llamadas ajax ..Asegurando jquery ajax calls
Por ejemplo, este código para eliminar un enlace:
// Delete link
$('.delete_update').live("click",function() {
var ID = $(this).attr("id");
var dataString = 'linkid='+ ID;
if(confirm('<?php echo _("Are you sure you want to delete this link?");?>')) {
$.ajax({
type: "POST",
url: "ajaxsave.php",
data: dataString,
cache: false,
success: function(html){
$(".bar"+ID).fadeOut('slow', function() {$(this).remove();});
}
});
}
return false;
});
Como muestra el ejemplo ajaxsave.php se encarga de borrar el enlace con el linkid POSTAL matchin. Que yo sepa, es posible enviar un formulario de publicación a una url externa. Lo que significa que todo el mundo podría ver mi código fuente y hacer sus propios formularios de publicación eligiendo su propio linkid. De esa forma pueden eliminar todos los enlaces que deseen.
¿Cómo puedo proteger mi código? - Http referente en ajaxsave.php? Los scripts Curl podrían arruinar eso. - ¿Utiliza una sesión o cookies en la página que llama a la función ajax? ¿Guardar la sesión en una base de datos y buscarla en ajaxsave.php?
¿Me puede ayudar? ¿Cómo se hace esto de una manera elegante? O lo que es "normal" en todos estos sitios modernos de Ajax.
Gracias por su respuesta. Esa es exactamente mi preocupación. Y esto no es posible? Sus ejemplos al visitar esas URL no funcionarán porque los datos se pasan como POST y no como GET. Mencionando que ajaxsave.php no borrará nada si no recibe el formato POST de prober. Y el sitio donde es posible eliminar estos enlaces a través de ajax está, por supuesto, protegido con contraseña. Mi preocupación era sobre el formulario de publicación a la URL externa. –
@ s0mmer, no es posible con el Ajax, pero muy posible y fácil de escribir un guión usando wget o curl. – hvgotcodes
@hvgotcodes ¿Cómo puedo prevenir esto? –