$.getJSON('http://a.com/test.php',{
id:2,
v:value
},function(data){
});这样提交和直接在http://a.com/test.php?id=2&v=xxx的效果是一样的。如果test.php有sql执行的话,怎么保证数据更新的安全性呢?如何判断是自己想要的是getJosn来源,而不是http://a.com/test.php?id=2&v=xxx来源呢?比如我要通过getJson传递数据到test.php,然后把v的值更新到数据表里id为2的这条数据。
那是不是说只要通过“http://a.com/test.php?id=2&v=xxx”就可以了完全站外提交了?除了session和hidden,还有什么能验证这个安全性的呢?

解决方案 »

  1.   


    可以用php生成加密的部分传递给他的js 函数调用.这个是可控的,还是看自己怎么组织吧
      

  2.   


    前提是可逆的,那麼你就在php接收後根據自己的加密函數逆出來結果,在這個地方你需要判斷逆出來的結果是不是自己提交的,這就是要將一些特徵給加密進字符串。1.加密的 內容 str=123
    2.特徵字段 mykey=testthiskey
    加密後可能變成 SADASXHAKSAXN283SLKASAK1SAP2 什麼的接受後,你逆出 str 和 mykey  如果不存在str 和 mykey 那麼肯定不是自己提交的啦,如果存在 判斷 mykey 是否等於 
    testthiskey. 是的話就基本可以確定是自己提交的數據入庫大約如此.