2013-02-19 86 views
0

我为我的网站使用PHP和Jquery。 有时候我应该用jQuery做一个ajax请求。例如我有产品列表和一个按钮来删除单个产品。这意味着我想要产品ID用ajax删除它。因此,要获取产品ID,我会将其存储到html标签属性中。 但我认为“添加数据转换成HTML标记属性是不安全的。 你想什么,有一个很好的方法,这样做?将动态数据添加到html标记属性和ajax中

+0

您是否在谈论使用数据属性来存储产品ID?例如。安全性只适用于确保您传递给ajax调用的产品ID已过滤/验证。 – gunnx 2013-02-19 09:38:07

+0

Magento有一个很好的方法来处理它。不要在阿贾克斯推id。使用一些可以在您的应用程序中唯一定义您的产品的slu slu。有slu is一点安全 – 2013-02-19 09:39:25

+0

@BhavikShah它没有任何机会。安全性是[授权](http://symfony.com/doc/current/book/security.html)的一个问题,如果你没有把你的资源放在防火墙后面,那么依靠查询字符串或路由段落:例如Rails对于将参数传递给任何路由的表单是不可知的。 – moonwave99 2013-02-19 09:44:15

回答

1

没有理由为什么你不能只使用HTML属性标记,如ID或data-id(或你选择的数据标签名称)。安全性来自你如何提交和处理ajax请求。只要确保你清理SQL查询或任何命令到你正在使用的任何类型的数据库,并且你应该避免任何安全问题

用户将无法从他们的浏览器进行成功的ajax调用,因为ajax调用必须来自服务器才能成功。换句话说,使用html标签属性一点也不安全,可能是一个处理这个问题的好方法。

+0

谢谢@Handeca – 2013-02-19 09:50:01

0

woory没有理由。您可以使用html id属性。发送ajax请求时,它已经使用您的网站url加密。另外如何管理你的ajax请求。

我会建议使用jquery ajax

那就是做一个干净的Ajax调用最简单的方法。在后端,您可以对变量进行santize。 例如: -

$firstName = $_POST['fname']; 
$new_string = filter_var($firstName,FILTER_SANITIZE_STRING); 

希望这可以解决您的问题。