2011-09-12 4 views
0

장소를 만들거나 편집하거나 볼 수있는 앱을 만들고 있습니다. 취약한 args를 템플릿에서 Django의보기로 전달하는 방법은 무엇입니까?

수정 또는 장소를 볼

, 내가 예를 들어, URL throught를 'ID'필드를 전달합니다

/장소/장소/1

/장소/장소/2 ...

나는 내가 할 장소 편집하려고 할 때 :

place_detail.html을

<a href="{% url places_edit_place place.id %}">Edit</a> 

'장소'var은 양식입니다.

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

view.py

def edit_place(request, id_place, template_name='places/edit_place.html'): 

url.py은 내가 'id_place'인수에 장소 개체의 'ID'필드를받을 수 있습니다. 하지만 'id'arg (/ places/edit_place/1 to/places/edit_place/2) URL을 변경하면 웹 페이지가 두 번째로 편집되고 사용자가 원하는대로이 arg를 변경할 수 있습니다.

템플릿없이이 개인 'id'arg를 사용자없이 볼 수있는 방법으로 보낼 수 있습니다.

답변

0

하지 마십시오.

앱에서 사용자가 수정할 수있는 위치를 결정하는 규칙이있는 경우 URL을 이동한다고해도 사용자가 해당 장소를 수정할 수 없도록 비즈니스 로직을 구현해야합니다. 당신은 Django의 authorization decorators을 사용하여 사용자가해서는 안되는 것을 액세스 할 수 없도록 할 수 있습니다.

관련 문제