首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-表单:安全问题

Django-表单:安全问题
EN

Stack Overflow用户
提问于 2015-09-02 11:28:32
回答 2查看 340关注 0票数 0

我有两个观点: myview和view-2。

视图-两个加载两个值(manie和pablo)并将其发送到模板:

代码语言:javascript
复制
def view-two(request):
    manie = ObjectUno.objects.all().count()
    pablo = ObjectDos.objects.all().count()
    ...
    return render(request,"website/maniePablo.html",locals())

在maniePablo.html中,我实现了将这两个值发送到名为"myview“的其他视图的过程:

代码语言:javascript
复制
<form hidden method="POST" action="{% url 'myview' %}" id="myform">
    {% csrf_token %}
    <input value="{{pablo}}" name="pablo">
    <input value="{{manie}}" name="manie">
</form>
<a onclick="$('#myform').submit();" id="BTNmesp" class="btn btn-success" role="button"> XXX </a>

单击btn XXX,我的视图"myview“获得以下两个值:

代码语言:javascript
复制
def myview(request) : 
    ...
    if "pablo" in request.POST :
        nbpablo = request.POST["pablo"]
        nbmanie = request.POST["manie"]
    ...

使用此过程:-我可以将值发送到我的视图,而不是在url中显示这些值(例如:localhost:8000/nameofurl/manie/pablo.)。- myview不加载这些值,比如view-2(省电)

,但我想知道这个过程是否良好,以及他是否会造成安全问题?

如果不是一个好的解决方案,我会使用ajax..。

EN

回答 2

Stack Overflow用户

发布于 2015-09-02 11:53:01

这根本不安全。任何人都可以通过查看页面源来查看这些值,并在提交之前通过浏览器中的开发工具对它们进行更改。

我会问你为什么要提供它们。首先,它们来自服务器,而您将其直接发回,这有什么意义呢?您可以更容易地在处理post的代码中直接在服务器上获得它们。

票数 0
EN

Stack Overflow用户

发布于 2020-07-11 16:31:52

一个简短的答案:如果不希望在url和后端显示信息,请使用django会话,检查request.session中的值是否相同

https://docs.djangoproject.com/en/2.2/topics/http/sessions/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32351913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档