django/trunk/django/core/files/base.py -- File, why not a subclass of file ?

2011-02-21 Thread sebastien piquemal
Hi !

It might be a stupid question, but is there a reason why
`django.trunk.django.core.files.base.File` is not a subclass of
`file` ?
I ask this because after debugging my code - some urllib2 handler
(http://dpaste.com/437031/), based on a snippet I found somewhere - I
figured out that posted files were not handled like I wanted to ...
just because they were not `file` objects ... Wouldn't it be cleaner
that they would actually be `file` objects ?

Cheers,

Sébastien

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: django/trunk/django/core/files/base.py -- File, why not a subclass of file ?

2011-02-21 Thread Daniel Moisset
On Mon, Feb 21, 2011 at 8:55 AM, sebastien piquemal  wrote:
> Hi !
>
> It might be a stupid question, but is there a reason why
> `django.trunk.django.core.files.base.File` is not a subclass of
> `file` ?
> I ask this because after debugging my code - some urllib2 handler
> (http://dpaste.com/437031/), based on a snippet I found somewhere - I
> figured out that posted files were not handled like I wanted to ...
> just because they were not `file` objects ... Wouldn't it be cleaner
> that they would actually be `file` objects ?

Inheriting file may produce behavioral side effects in your class that
are hard to predict. The normal way in Python to do this is just
replicate the interface and substitute (duck typing). If the snippet
you have explicitly checks for inheritance (with isinstance, for
example), I'd say the snippet is not very pythonic. I suggest asking
how to fix it in django-users, posting a copy/link of the snippet

Regards,
   D.

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Pluggable encryption for django auth (design proposal)

2011-02-21 Thread poswald
Russ, Carl, thanks for your feedback. Russ, I understand what you say
about not wanting to adopt crypto code because of the additional
responsibility. Unfortunately, there aren't very good options. Django
contrib.auth already makes the recommendation of SHA1 which we all
agree is less than ideal. There is simply no acceptable choice in the
python standard library. I also agree with Carl that PBKDF2 is
probably the most conservative option that qualifies as sufficient.

It seems like the canonical implementation of PBKDF2 in python is
Dwayne Litzenberger's. I think it is simple enough to audit for flaws
and stable enough not to cause too much trouble maintaining:

http://www.dlitz.net/software/python-pbkdf2/
http://ftp.dlitz.net/pub/dlitz/crypto/pkcs5-pbkdf2/1.2/PBKDF2.py
http://en.wikipedia.org/wiki/PBKDF2

I understand that everyone has their hands full with the 1.3 release
so I've gone ahead and opened a new ticket to track contributions to
this issue off-list. Anyone interested can track contributions there:

http://code.djangoproject.com/ticket/15367

Perhaps once the authentication methods are decoupled from the User
object as you plan it becomes sufficiently easy for third party
libraries to replace the hashing algorithm. If that happens, then this
default hashing can be ported to that technique. I do think it is
important to make it "easy enough" for a developer to upgrade to a
different library of choice. For now though, I'm ok with working on a
conservative (but improved) default for Django 1.4.

-Paul

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Pluggable encryption for django auth (design proposal)

2011-02-21 Thread Jacob Kaplan-Moss
On Mon, Feb 21, 2011 at 3:23 PM, poswald  wrote:
> Russ, Carl, thanks for your feedback. Russ, I understand what you say
> about not wanting to adopt crypto code because of the additional
> responsibility. Unfortunately, there aren't very good options. Django
> contrib.auth already makes the recommendation of SHA1 which we all
> agree is less than ideal. There is simply no acceptable choice in the
> python standard library. I also agree with Carl that PBKDF2 is
> probably the most conservative option that qualifies as sufficient.

I've been desperately trying to get up to speed on this stuff over the
past few weeks. Crypto's very far from my strong suit, but I think I
know enough now to agree. It seems to me we need two things:

1. A new, updated default for Django's password hashing. PBKDF2,
perhaps, but whatever as long as it meets some basic requirements.
2. A mechanism to make swapping this hashing algorithm out easy(-ier).
Again, details don't matter, requirements do.

#1's a blocker for 1.4, I think, but if for some reason #2 can't be
figured out I think it's ok to punt there for a bit longer. Ideally
though they'd both go in at once.

Now, I want to make very explicit my requirements here since we've
gone 'round on this one a few times, so I'll lay out exactly what I'm
going to want to see to get on board with any proposal. So:

Requirements for a new password hash:
* As little crypto code in Django as possible. We're not security
experts, and we shouldn't try to be. Ideally would be something that
leaves all of the dangerous parts to the stdlib. Perhaps we relax our
dependency policy (we need to some day, I think, but that's a bigger
argument maybe we shouldn't have now).
* Any code we distribute gets audited by people who know what they're
talking about.
* Those people have reputations sufficient to convince me (or other
core devs) that they know what they're doing. This is sorta a "who
watches the watchers" moment, but we can't just trust someone who says
they're a crypto expert; we have to believe them, too.

Requirements for pluggable hashing algorithms:
* The big one is cross-installation password compatibility. If I
upgrade from Python 2.4 to 2.7 my passwords have to keep working. If I
install django-bcrypt my old passwords have to keep working. If I then
decide to switch to pbkdf2 my bcrypt passwords have to keep working.
We already have an in-place upgrade mechanism for md5; we probably
need something similar as a generic thing.
* Failures need to be clear - I shouldn't get mysterious login
failures if I accidentally uninstall bcrypt (i.e. I should get a loud,
clear, failure quickly).
* We need an internal upgrade path that *we* can use when a few years
from now everyone starts complaining that PBKDF2 is fundamentally
flawed and that we're total idiots for clinging to it.

[It occurs to me that, with the right mentor, this would make a
fantastic SoC project...]

Jacob

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Your thoughts on the Secure Web Application Framework Manifesto

2011-02-21 Thread Rohit Sethi
Django devs, I wanted to thank you for a truly awesome framework.
Programming with Python, and web app dev in Django, is truly a
pleasure. Our company, Security Compass, uses Django quite
substantially internally.

We put together a document called the Secure Web Application Framework
Manifesto for the Open Web Application Security Project (OWASP) - see:
http://www.owasp.org/index.php/Projects/OWASP_Secure_Web_Application_Framework_Manifesto/Releases/Current/Manifesto

I would love to get your feedback about this project. How much of this
is realistic and how much of it is pie in the sky? Is it relevant for
you? If not, how does this document need to change to become relevant?
Clearly, Django takes security seriously which is a major reason we
use it. Please feel free to be candid - if you think the document
sucks and could never be used, it's important you let us know that
too.

Thanks in advance,

Rohit Sethi
@rksethi

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Suggestion: a new "nature" field in Trac

2011-02-21 Thread Julien Phalip
Hello,

I was wondering if others would find it useful to introduce a new
field in Trac to characterise the nature of a ticket, allowing to
choose from at least: "bug report", "feature request", or
"optimisation". I think this would help bring the right focus during
alpha and beta stages, and also help people looking for tickets when,
for example, they're in the mood for fixing bugs. I believe the
Keywords field has been used in an ad hoc way for this before, but it
feels that something more structured would be more helpful.

Cheers,

Julien

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Suggestion: a new "nature" field in Trac

2011-02-21 Thread Daniel Moisset
On Mon, Feb 21, 2011 at 3:05 PM, Julien Phalip  wrote:
> Hello,
>
> I was wondering if others would find it useful to introduce a new
> field in Trac to characterise the nature of a ticket, allowing to
> choose from at least: "bug report", "feature request", or
> "optimisation".

Trac already has a "type" field. Default values are "defect"
"enhancement" and "task", but that can be changed. I'm not very
convinced that people will use it and that it will help, but it's so
wasy to add that I guess there's no harm in configuring it.

D.

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Your thoughts on the Secure Web Application Framework Manifesto

2011-02-21 Thread Rohit Sethi
One more point - if any of you have questions for somebody who leaves
and breathes web application security every day, please feel free to
fire them off to me:

rohit at  securitycompass.com

On Feb 21, 10:21 am, Rohit Sethi  wrote:
> Django devs, I wanted to thank you for a truly awesome framework.
> Programming with Python, and web app dev in Django, is truly a
> pleasure. Our company, Security Compass, uses Django quite
> substantially internally.
>
> We put together a document called the Secure Web Application Framework
> Manifesto for the Open Web Application Security Project (OWASP) - 
> see:http://www.owasp.org/index.php/Projects/OWASP_Secure_Web_Application_...
>
> I would love to get your feedback about this project. How much of this
> is realistic and how much of it is pie in the sky? Is it relevant for
> you? If not, how does this document need to change to become relevant?
> Clearly, Django takes security seriously which is a major reason we
> use it. Please feel free to be candid - if you think the document
> sucks and could never be used, it's important you let us know that
> too.
>
> Thanks in advance,
>
> Rohit Sethi
> @rksethi

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



render_to_* vs Template.render

2011-02-21 Thread Chris Beaven
After hunting down a very elusive bug, I found the cause to be due to the 
fact that render_to_string leaves the context in a different state than it 
started (due to the context stack being pushed before rendering, and then 
not popped).

This behavior differs from a standard Template.render call and it seemed 
like a straight forward enough inconsistency so I committed [1] which 
changed render_to_string to leave the context how it found it.

Being an idiot, I did my full test-suite pass against the wrong branch and 
therefore failed to heed some warning bells of the impact of this  :(
I've since fixed the test-suite failures [2] (there's still one outstanding 
issue [3] although that has an easy enough solution).

Anyway, the change in [1] is backwards incompatible, due to the fact that 
people may be relying on the render_to_string (or render_to_response which 
uses this method) method leaving the context stack 'unresolved'. 

Option A is that the change is reverted and the inconsistency between 
Template.render and the render_to_* methods is documented.
Option B is that the change remains and the backwards incompatibility is 
documented in the 1.3 changelog.

(PS: the fixes in [2] are a good addition independent to the outcome of the 
decision of backwards incompatible change - and actually necessary to avoid 
the impact of the original problem)

[1] http://code.djangoproject.com/changeset/15591
[2] http://code.djangoproject.com/changeset/15618
[3] http://code.djangoproject.com/ticket/15368

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Suggestion: a new "nature" field in Trac

2011-02-21 Thread Russell Keith-Magee
On Tue, Feb 22, 2011 at 2:05 AM, Julien Phalip  wrote:
> Hello,
>
> I was wondering if others would find it useful to introduce a new
> field in Trac to characterise the nature of a ticket, allowing to
> choose from at least: "bug report", "feature request", or
> "optimisation". I think this would help bring the right focus during
> alpha and beta stages, and also help people looking for tickets when,
> for example, they're in the mood for fixing bugs. I believe the
> Keywords field has been used in an ad hoc way for this before, but it
> feels that something more structured would be more helpful.

Back in the dim, dark past, we actually *did* have a 'feature' flag.
The problem we had was data integrity. Experience showed that
reporters were very bad at differentiating between a "bug" and
a"feature". The most common mode of failure was people reporting
"Django, can't do X -- this is a bug", and then trying to convince
them that lack of features isn't a bug. So, we removed the feature
flag. Oh, the good old days :-)

However, I agree that this is worth revisiting. Our community is now
larger, we have more people to help with the Trac gardening, and there
are less "obvious features" that are missing that could be
misconstrued as a bug. Most importantly, since our process hinges on a
"feature freeze", it is silly that we can't easily differentiate bugs
from features in our issue tracker.  There's another todo pending in
Trac regarding the introduction of a 'needs feedback' state; we should
probably roll the reintroduction of a feature flag into this.

Russ %-)

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Suggestion: a new "nature" field in Trac

2011-02-21 Thread Alex Gaynor
On Mon, Feb 21, 2011 at 6:36 PM, Russell Keith-Magee <
russ...@keith-magee.com> wrote:

> On Tue, Feb 22, 2011 at 2:05 AM, Julien Phalip  wrote:
> > Hello,
> >
> > I was wondering if others would find it useful to introduce a new
> > field in Trac to characterise the nature of a ticket, allowing to
> > choose from at least: "bug report", "feature request", or
> > "optimisation". I think this would help bring the right focus during
> > alpha and beta stages, and also help people looking for tickets when,
> > for example, they're in the mood for fixing bugs. I believe the
> > Keywords field has been used in an ad hoc way for this before, but it
> > feels that something more structured would be more helpful.
>
> Back in the dim, dark past, we actually *did* have a 'feature' flag.
> The problem we had was data integrity. Experience showed that
> reporters were very bad at differentiating between a "bug" and
> a"feature". The most common mode of failure was people reporting
> "Django, can't do X -- this is a bug", and then trying to convince
> them that lack of features isn't a bug. So, we removed the feature
> flag. Oh, the good old days :-)
>
> However, I agree that this is worth revisiting. Our community is now
> larger, we have more people to help with the Trac gardening, and there
> are less "obvious features" that are missing that could be
> misconstrued as a bug. Most importantly, since our process hinges on a
> "feature freeze", it is silly that we can't easily differentiate bugs
> from features in our issue tracker.  There's another todo pending in
> Trac regarding the introduction of a 'needs feedback' state; we should
> probably roll the reintroduction of a feature flag into this.
>
> Russ %-)
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django developers" group.
> To post to this group, send email to django-developers@googlegroups.com.
> To unsubscribe from this group, send email to
> django-developers+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-developers?hl=en.
>
>
I don't think there's much work that needs to be done, it'd take about 20
seconds to do from the web interface if we decide its a good idea.

Alex

-- 
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Suggestion: a new "nature" field in Trac

2011-02-21 Thread Gabriel Hurley
I'm still in favor of adding the "needsinfo" resolution and would love to 
see that happen... I guess technically I could even do that one myself via 
Trac's web admin if we're all agreed on it.

I'm ambivalent about adding the "ticket type" field back in, though. It can 
be useful, but it *is* an extra item to keep managed and argue about... My 
bigger concern, though, is the 1700+ existing tickets which will be 
uncategorized. It would end up meaning that using that flag for queries in 
Trac wouldn't give you a complete picture (at least not for a very long time 
while things catch up).

All the best,

- Gabriel

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.



Re: Your thoughts on the Secure Web Application Framework Manifesto

2011-02-21 Thread Russell Keith-Magee
On Mon, Feb 21, 2011 at 11:21 PM, Rohit Sethi  wrote:
> Django devs, I wanted to thank you for a truly awesome framework.
> Programming with Python, and web app dev in Django, is truly a
> pleasure. Our company, Security Compass, uses Django quite
> substantially internally.
>
> We put together a document called the Secure Web Application Framework
> Manifesto for the Open Web Application Security Project (OWASP) - see:
> http://www.owasp.org/index.php/Projects/OWASP_Secure_Web_Application_Framework_Manifesto/Releases/Current/Manifesto
>
> I would love to get your feedback about this project. How much of this
> is realistic and how much of it is pie in the sky? Is it relevant for
> you? If not, how does this document need to change to become relevant?
> Clearly, Django takes security seriously which is a major reason we
> use it. Please feel free to be candid - if you think the document
> sucks and could never be used, it's important you let us know that
> too.

Hi Rohit,

A lot of effort has clearly gone into this document. I haven't gone
through it with a fine-toothed comb, but it seems like a reasonably
thorough discussion of security issues affecting web frameworks.

However, if you're looking for frank feedback, here goes:

Who exactly is the intended audience for this document? What is/are
the action item(s) stemming from it?

More broadly, what it is you are hoping to achieve by writing this document?

Reading between the lines, I'm guessing you would like to see every
web framework in the world adhering to best practices, with no obvious
and know security vulnerabilities. This is a laudable goal, and I
certainly share this aspiration.

But there are two ways to achieve this goal. The first is to sit in a
tower, passing down Solomonic judgements on "the way it should be".
The second is to actually get involved and help make the change you
want to see in the world.

Writing manifestos may give you a sense of personal satisfaction at
the volume of material you have generated, but it doesn't actually
change the world at all. It merely provides the reference material
that others may be able to use to inform the changes that they are
making. This is a useful resource, but it isn't *in itself* a catalyst
for change.

I'm not suggesting that you should spend all your time being a Django
developer (although I certainly wouldn't turn away the extra help). My
point is that in volunteer open source communities, the only way to
actually bring about change is to actively engage a developer
community. Become a known, trusted voice -- in this case, on security
issues.

For example, the Django-dev list has just recently gone through a
series of discussions about our default password hashing policies.
Some of these discussions have hinged on interpretations of what
constitutes best practice in these areas. This would be a golden
opportunity for someone with relevant experience and knowledge to
speak up, offer advice gleaned from experience with other frameworks,
and generally establish topic expertise.

There are other examples of people doing this very effectively. Graham
Dumpleton is the developer of mod_wsgi. He's isn't a member of the
Django core team, but he is *very* well known to the Django community
because he is actively involved in our mailing lists, issue tracker,
and so on. If a WSGI/Apache configuration related issue arises, Graham
is usually there giving advice. And he doesn't just do this for Django
-- he lurks in a similar way on other Python frameworks. He is
actively involved across the Python web framework community, pushing
an agenda that he is passionate about -- the WSGI interface to Apache.

OWASP already maintains a list of vulnerabilities, threat and attacks.
These are very well documented and explained analyses of individual
potential problems, and as a whole, serves as a magnificent reference
resource.

Compiling this list (or a subset of that list) into a monolithic
"manifesto" doesn't improve the quality or prescience of the
information. A manifesto is a lovely document that I might read once,
perhaps bookmark or tweet, and then move on. That doesn't actually
help bring about any change.

What *would* help bring about change is having someone with expertise
actually getting involved -- participating in discussions, starting
new discussions, raising tickets, auditing code when new problems are
identified, and so on.

tl;dr -- You won't get any argument out of me that the goals of OWASP
are important. There are things that are on OWASP's lists that Django
could do better. Sometimes this is out of ignorance, sometimes it's a
matter of history, and sometimes there are other concerns. But writing
long documents describing what other people should do doesn't help
change anything -- we need people to actually get involved and engage
us in a specific discussions about what we could be doing better.

Yours,
Russ Magee %-)

-- 
You received this message because you are subscribed to the Google Gro

Re: Your thoughts on the Secure Web Application Framework Manifesto

2011-02-21 Thread Rohit Sethi
Russell, awesome feedback. Thanks for being candid. We are on the same
page that the manifesto is really not all that important in and of
itself: The document piece is really only designed to give frameworks
a platform to say "hey, these are what we support" so that web app
developers building security-sensitive apps get an idea of how much
help they'll get from various framework.

I didn't want to bring this up until I got at least one response, but
my team is busy seeing which manifesto requirements are:

a) Already being fulfilled by Django (great- no more work to be done!)
b) Have been fulfilled elsewhere (e.g. OWASP ESAPI for Python) and
could be built into Django
c) Have not yet been done

We'll be looking to address b) and c) by either porting or building
ourselves. We hope we can get your feedback on why some things aren't
being implemented (if we can't find a pre-existing discussion in
existing tickets and/or this group).

The manifesto is designed to only a starting point: it's taking
several vulnerabilities, beyond the OWASP top 10, into something
targeted specifically for frameworks. It's definitely not intended to
be implemented by every framework in the world - nor should it be.

So, we (myself and at least four of our developers) will be working
closely with the Django community. I will be watching the list closely
and providing feedback when I can.

Looking forward to working with you

Cheers,

Rohit

On Feb 21, 7:42 pm, Russell Keith-Magee 
wrote:
> On Mon, Feb 21, 2011 at 11:21 PM, Rohit Sethi  wrote:
> > Django devs, I wanted to thank you for a truly awesome framework.
> > Programming with Python, and web app dev in Django, is truly a
> > pleasure. Our company, Security Compass, uses Django quite
> > substantially internally.
>
> > We put together a document called the Secure Web Application Framework
> > Manifesto for the Open Web Application Security Project (OWASP) - see:
> >http://www.owasp.org/index.php/Projects/OWASP_Secure_Web_Application_...
>
> > I would love to get your feedback about this project. How much of this
> > is realistic and how much of it is pie in the sky? Is it relevant for
> > you? If not, how does this document need to change to become relevant?
> > Clearly, Django takes security seriously which is a major reason we
> > use it. Please feel free to be candid - if you think the document
> > sucks and could never be used, it's important you let us know that
> > too.
>
> Hi Rohit,
>
> A lot of effort has clearly gone into this document. I haven't gone
> through it with a fine-toothed comb, but it seems like a reasonably
> thorough discussion of security issues affecting web frameworks.
>
> However, if you're looking for frank feedback, here goes:
>
> Who exactly is the intended audience for this document? What is/are
> the action item(s) stemming from it?
>
> More broadly, what it is you are hoping to achieve by writing this document?
>
> Reading between the lines, I'm guessing you would like to see every
> web framework in the world adhering to best practices, with no obvious
> and know security vulnerabilities. This is a laudable goal, and I
> certainly share this aspiration.
>
> But there are two ways to achieve this goal. The first is to sit in a
> tower, passing down Solomonic judgements on "the way it should be".
> The second is to actually get involved and help make the change you
> want to see in the world.
>
> Writing manifestos may give you a sense of personal satisfaction at
> the volume of material you have generated, but it doesn't actually
> change the world at all. It merely provides the reference material
> that others may be able to use to inform the changes that they are
> making. This is a useful resource, but it isn't *in itself* a catalyst
> for change.
>
> I'm not suggesting that you should spend all your time being a Django
> developer (although I certainly wouldn't turn away the extra help). My
> point is that in volunteer open source communities, the only way to
> actually bring about change is to actively engage a developer
> community. Become a known, trusted voice -- in this case, on security
> issues.
>
> For example, the Django-dev list has just recently gone through a
> series of discussions about our default password hashing policies.
> Some of these discussions have hinged on interpretations of what
> constitutes best practice in these areas. This would be a golden
> opportunity for someone with relevant experience and knowledge to
> speak up, offer advice gleaned from experience with other frameworks,
> and generally establish topic expertise.
>
> There are other examples of people doing this very effectively. Graham
> Dumpleton is the developer of mod_wsgi. He's isn't a member of the
> Django core team, but he is *very* well known to the Django community
> because he is actively involved in our mailing lists, issue tracker,
> and so on. If a WSGI/Apache configuration related issue arises, Graham
> is usually there giving advice. An

Re: Your thoughts on the Secure Web Application Framework Manifesto

2011-02-21 Thread Gabriel Hurley
I've got one bit of feedback to offer on the document (which I did
bookmark for future reference):

Monolithic documents present a huge problem for finding, using and
retaining information.

A very useful and interesting extension of this type of project would
be to work with people who have experience with information
architecture and data visualization to find new ways of presenting
this information. An interface that was simple, clear, interactive,
layered and multi-faceted would make your manifesto into a drastically
more valuable tool.

I would love to be able to sit down with an interface to all the
information you've gathered and "explore it". Ideally it would allow
me to visually follow threads of commonalities in vulnerabilities, see
clusters of the most common problem areas, and zoom in to the level of
detail you've gathered on any individual item if I so choose.

Either way, thank you for providing an interesting resource.

All the best,

- Gabriel Hurley

On Feb 21, 5:09 pm, Rohit Sethi  wrote:
> Russell, awesome feedback. Thanks for being candid. We are on the same
> page that the manifesto is really not all that important in and of
> itself: The document piece is really only designed to give frameworks
> a platform to say "hey, these are what we support" so that web app
> developers building security-sensitive apps get an idea of how much
> help they'll get from various framework.
>
> I didn't want to bring this up until I got at least one response, but
> my team is busy seeing which manifesto requirements are:
>
> a) Already being fulfilled by Django (great- no more work to be done!)
> b) Have been fulfilled elsewhere (e.g. OWASP ESAPI for Python) and
> could be built into Django
> c) Have not yet been done
>
> We'll be looking to address b) and c) by either porting or building
> ourselves. We hope we can get your feedback on why some things aren't
> being implemented (if we can't find a pre-existing discussion in
> existing tickets and/or this group).
>
> The manifesto is designed to only a starting point: it's taking
> several vulnerabilities, beyond the OWASP top 10, into something
> targeted specifically for frameworks. It's definitely not intended to
> be implemented by every framework in the world - nor should it be.
>
> So, we (myself and at least four of our developers) will be working
> closely with the Django community. I will be watching the list closely
> and providing feedback when I can.
>
> Looking forward to working with you
>
> Cheers,
>
> Rohit
>
> On Feb 21, 7:42 pm, Russell Keith-Magee 
> wrote:
>
>
>
>
>
>
>
> > On Mon, Feb 21, 2011 at 11:21 PM, Rohit Sethi  wrote:
> > > Django devs, I wanted to thank you for a truly awesome framework.
> > > Programming with Python, and web app dev in Django, is truly a
> > > pleasure. Our company, Security Compass, uses Django quite
> > > substantially internally.
>
> > > We put together a document called the Secure Web Application Framework
> > > Manifesto for the Open Web Application Security Project (OWASP) - see:
> > >http://www.owasp.org/index.php/Projects/OWASP_Secure_Web_Application_...
>
> > > I would love to get your feedback about this project. How much of this
> > > is realistic and how much of it is pie in the sky? Is it relevant for
> > > you? If not, how does this document need to change to become relevant?
> > > Clearly, Django takes security seriously which is a major reason we
> > > use it. Please feel free to be candid - if you think the document
> > > sucks and could never be used, it's important you let us know that
> > > too.
>
> > Hi Rohit,
>
> > A lot of effort has clearly gone into this document. I haven't gone
> > through it with a fine-toothed comb, but it seems like a reasonably
> > thorough discussion of security issues affecting web frameworks.
>
> > However, if you're looking for frank feedback, here goes:
>
> > Who exactly is the intended audience for this document? What is/are
> > the action item(s) stemming from it?
>
> > More broadly, what it is you are hoping to achieve by writing this document?
>
> > Reading between the lines, I'm guessing you would like to see every
> > web framework in the world adhering to best practices, with no obvious
> > and know security vulnerabilities. This is a laudable goal, and I
> > certainly share this aspiration.
>
> > But there are two ways to achieve this goal. The first is to sit in a
> > tower, passing down Solomonic judgements on "the way it should be".
> > The second is to actually get involved and help make the change you
> > want to see in the world.
>
> > Writing manifestos may give you a sense of personal satisfaction at
> > the volume of material you have generated, but it doesn't actually
> > change the world at all. It merely provides the reference material
> > that others may be able to use to inform the changes that they are
> > making. This is a useful resource, but it isn't *in itself* a catalyst
> > for change.
>
> > I'm not suggesting that you sh