> > Just in general, is it a good idea to expose primary keys like this? > sometimes you can see them in urls too, like: www.yoursite/blog/1/, 1 > would be the primary key of a blog.
It's an easy way to refer to an object. Unless there is a secure connection it's this is IMHO the best way to refer to the object. Of cause you can do it complicated ( with look up tables on the server etc. ) but the result matters. And I like to keep my life and my apps simple [?] 2015-05-27 16:05 GMT+02:00 Cheng Guo <[email protected]>: > Thank you! Yes, I forgot about the csrf. You are right, it would be > difficult to fake the CSRF string. > > Just in general, is it a good idea to expose primary keys like this? > sometimes you can see them in urls too, like: www.yoursite/blog/1/, 1 > would be the primary key of a blog. > > On Wednesday, 27 May 2015 22:01:37 UTC+8, Matthias Müller wrote: >> >> Without looking at the link I guess that you explantion is more or less >> correct. >> >> But it's not a security issue that the database is updated by a form. It >> has to be updated by a form. To make it a correct django form there is a >> hidden field with the CSRF token. This protects the database being updated >> from any illegal source. >> >> In your example there is this csrf missing, Most probably for didactical >> reasons. >> >> Refer to https://docs.djangoproject.com/en/1.8/ref/csrf/ >> >> Cheers >> Matthias >> >> 2015-05-27 15:47 GMT+02:00 Cheng Guo <[email protected]>: >> >>> Hello, >>> >>> I have a formset and when I render it, Django would include this line in >>> the HTML: >>> >>> <input id="id_form-0-id" name="form-0-id" type="hidden"> >>> >>> I am curious what is the purpose of having an id field here. >>> >>> I mean in what situation would you use it. I did look through Django's >>> documentation >>> on formset >>> <https://docs.djangoproject.com/en/1.8/topics/forms/formsets/#can-delete>but >>> cannot find much documentation on this. >>> One answer I got is that this id field is the value of the primary key >>> of the model bound to this form. It is there so that when the formset >>> updates, people can use it to retrieve the corresponding record from the >>> database. >>> >>> Is the above explaination correct? >>> >>> If this explaination is correct, then my next question is, wouldn't it >>> be dangerous to expose the primary key like that? I can make a post call to >>> your server with a modified pk which can mess up your database. >>> >>> Thank you! >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/django-users. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-users/18e0d250-c4a9-4060-ae4f-19afb57566e0%40googlegroups.com >>> <https://groups.google.com/d/msgid/django-users/18e0d250-c4a9-4060-ae4f-19afb57566e0%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/285ee494-8b28-42cd-8af9-4cb33983a82c%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/285ee494-8b28-42cd-8af9-4cb33983a82c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAA2xsHSSy03DSHaBfT4RNxv4zYJUBTdySLvg__mjMDheSemE4w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

