Php Symfony安全-循环中的删除按钮

Php Symfony安全-循环中的删除按钮,php,ajax,symfony,security,button,Php,Ajax,Symfony,Security,Button,我想知道我的应用程序的安全性。我只是使用细枝循环来显示数据库中的所有记录。当我创建单独的站点来显示详细信息时,一切都正常,并且有按钮来删除这个东西。这种情况通常发生在删除方法中,某些人只能显示自己的详细信息。但我想有一个按钮来删除基本视图中的特定记录,其中每个记录都显示在项目标题旁边 我无法通过CreateFormBuilder执行此操作,因为我无法从表单发送项目的当前id(或者我不知道如何执行此操作)。但它安全吗?每个人都可以更改按钮的id参数并删除其他记录 我可以使用AJAX和twig中的简

我想知道我的应用程序的安全性。我只是使用细枝循环来显示数据库中的所有记录。当我创建单独的站点来显示详细信息时,一切都正常,并且有按钮来删除这个东西。这种情况通常发生在删除方法中,某些人只能显示自己的详细信息。但我想有一个按钮来删除基本视图中的特定记录,其中每个记录都显示在项目标题旁边

  • 我无法通过CreateFormBuilder执行此操作,因为我无法从表单发送项目的当前id(或者我不知道如何执行此操作)。但它安全吗?每个人都可以更改按钮的id参数并删除其他记录

  • 我可以使用AJAX和twig中的简单按钮,但情况也是如此。每个人都可以更改按钮中的数据id参数等,并删除其他记录

  • 在这种情况下我该怎么办?你通常如何解决这个问题

    总结我想做一个安全的按钮删除每个显示记录旁边的项目


    祝你今天愉快

    这实际上可以归结为您想要构建什么样的应用程序:

    • 更传统的应用程序-具有完整的页面刷新/导航周期
    • 基于AJAX的-具有对服务器的各种异步调用
    在您选择的任何情况下,您都有责任检查当前用户是否有权对对象进行任何更改(包括删除)。这在
    id
    为整数的情况下尤为重要,这是可预测的

    所以,首先,确保您的路由受到匿名用户的保护,其次,确保您设置了允许/拒绝用户特定操作的权限策略

    大多数与权限相关的内容都可以通过实现,但是如果您确实需要进行繁重的工作,您可以求助于


    希望这有帮助……

    保护AJAX路由的方法之一是使用JWT(json Web令牌)(请参见:)而不是随机字符串令牌。此令牌使用用户信息加密,以确保单击按钮的人可以执行某些操作(并且令牌将与请求头中的请求一起发送)

    无论如何,您必须发送一些东西来标识要在数据库中删除或修改的元素的id。我想亲自实现这个JWT系统,但是你可以看到并点击这些按钮的页面的访问也必须受到保护。这样,您可以假设用户没有恶意

    Theis bundle()可以帮助您非常轻松地在symfony上实现这一点(我是这个框架的新手,我在几个小时内就完成了这项工作——这只是一件事:如果您使用Apache,请不要忘记在Apache配置中允许重写,以允许symfony的.htaccess来完成他的工作,否则Apache将剥离头文件——这让我花了几个小时来找出事情不起作用的原因!)


    希望这会有所帮助!

    @Patrick:的确,JWT非常值得你去看看你需要什么。。。