使用Django网址运行代码是否安全? [处于保留状态]

问题描述 投票:0回答:2

我担心我的Web应用程序的安全性,我使用Django,有时我使用AJAX调用将执行代码的Django url,然后根据结果返回一条带有消息的HttpResponse,用户从不会注意到这一点因为它是在后台发生的。

[但是,如果我使用AJAX调用的网址是“ runco​​de /”,则用户以某种方式跟踪该网址,并尝试使用该网址向我的域发送请求(例如“ www.example.com之类的/ runco​​de /“),它实际上将运行代码,我觉得这是一个安全漏洞。

我应该使用Django url来通过AJAX运行代码吗?如果可以的话,如何避免用户注意到URL存在?

编辑:为澄清我的问题,我担心的是,任何人都可以将自定义POST请求发送到我的服务器,并执行我不希望他们做的事情,阅读了很多有关CSRF令牌的信息,我能够理解为了防止服务器接受来自第三方的自定义POST请求,包括使用AJAX(https://docs.djangoproject.com/en/2.2/ref/csrf/),并且正如每个人都指出的那样,如果我真的需要阻止某人对请求执行代码,则应该向该请求添加身份验证。

javascript python django ajax security
2个回答
1
投票

如其他评论所述,Web应用程序的目的是基于用户交互执行代码。有时,代码只是导致显示另一个html模板,而在其他情况下,它将导致执行其他代码。

如果您担心未经授权的用户可以访问敏感数据,则django内置了可帮助进行身份验证/授权的工具。

建议您阅读:

https://docs.djangoproject.com/en/2.2/topics/auth/

https://docs.djangoproject.com/en/2.2/topics/auth/default/


0
投票

不仅是django,而且这种行为在所有其他情况中都很普遍,

您只能应用2个解决方案,

  1. 应用CORS并只允许您的域阻止其他域访问API响应中的数据,但是如果用户直接调用您的API端点,则此方法将无效。
  2. 正如Lain在评论中所说,如果数据是敏感数据或用户个人信息,请在API中添加身份验证。

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.