Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django中将易受攻击的参数从模板传递到视图?_Django_Django Templates_Django Forms_Django Views - Fatal编程技术网

如何在Django中将易受攻击的参数从模板传递到视图?

如何在Django中将易受攻击的参数从模板传递到视图?,django,django-templates,django-forms,django-views,Django,Django Templates,Django Forms,Django Views,我正在创建一个应用程序,可以创建、编辑或查看一个地方 当我编辑或查看一个地方时,我会通过URL传递“id”字段,例如: /地点/地点/1 /地点/地点/2 当我尝试编辑一个位置时,我会: place_detail.html <a href="{% url places_edit_place place.id %}">Edit</a> 我在'id_place'参数中收到一个place对象的'id'字段。但是如果我在url中更改“id”参数(/places/edit_-p

我正在创建一个应用程序,可以创建、编辑或查看一个地方

当我编辑或查看一个地方时,我会通过URL传递“id”字段,例如:

/地点/地点/1

/地点/地点/2

当我尝试编辑一个位置时,我会:

place_detail.html

<a href="{% url places_edit_place place.id %}">Edit</a>
我在'id_place'参数中收到一个place对象的'id'字段。但是如果我在url中更改“id”参数(/places/edit_-place/1到/places/edit_-place/2),网页将转到第二个要编辑的位置,用户可以根据自己的需要更改此参数

如何将此私有“id”参数从模板发送到视图,而不让用户看到它。

不要

如果你的应用程序有规则来确定用户可以编辑哪些地方,那么你应该实现一些业务逻辑,以确保用户无法编辑该地方,即使他们碰巧通过URL进行编辑。您可以使用Django来确保用户不能访问任何他们不应该访问的内容

urlpatterns = patterns('',
    url(r'^edit_place/(?P<id_place>\w+)/$',
        views.edit_place,
        name='places_edit_place'),
    )
def edit_place(request, id_place, template_name='places/edit_place.html'):