通过Ajax将实体ID传递给Controller

时间:2015-05-31 11:48:25

标签: php jquery ajax security parameter-passing

通过ajax将对象的标识符传递给服务器/控制器的最佳方法是什么(例如我们在网站上#34; book / edit / mybookname"以及更新此书实体的内容&# 34; mybookname"通过ajax)?

我想到了一些方法,并想知道,最常见和最安全的方式是什么:

1)将书的ID传递给控制器​​

- >问题:可以使用浏览器控制台更改ID变量/字段

2)将当前URL(window.location.href)传递给控制器​​,并从控制器中的url中提取名称

- > window.location.href无法通过控制台进行更改..?

我知道我必须检查服务器端,用户是否应该有权编辑实体。但是,如果他有一本以上的书,他可能会将id参数更改为他拥有的另一本书,然后他会在后台更改另一本书,而不是他目前正在浏览的那本书。

1 个答案:

答案 0 :(得分:0)

想到ajax你可以使用帖子数据。无法在浏览器地址栏中进行编辑。

var xmlhttp;    
}

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState===4 && xmlhttp.status===200)
  {
         //do whatever with response
  }

  };
xmlhttp.open("POST","ajax/ajax.php);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("field1=whatever&field2=whateverelse");