annotate doc/tracker_templates.txt @ 5201:a9ace22e0a2f

issue 2550690 - Adding anti-csrf measures to roundup following https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet and https://seclab.stanford.edu/websec/csrf/csrf.pdf Basically implement Synchronizer (CSRF) Tokens per form on a page. Single use (destroyed once used). Random input data for the token includes: system random implementation in python using /dev/urandom (fallback to random based on timestamp as the seed. Not as good, but should be ok for the short lifetime of the token??) the id (in cpython it's the memory address) of the object requesting a token. In theory this depends on memory layout, the history of the process (how many previous objects have been allocated from the heap etc.) I claim without any proof that for long running processes this is another source of randomness. For short running processes with little activity it could be guessed. last the floating point time.time() value is added. This may only have 1 second resolution so may be guessable. Hopefully for a short lived (2 week by default) token this is sufficient. Also in the current implementation the user is notified when validation fails and is told why. This allows the roundup admin to find the log entry (at error level) and try to resolve the issue. In the future user notification may change but for now this is probably best.
author John Rouillard <rouilj@ieee.org>
date Sat, 18 Mar 2017 16:59:01 -0400
parents 33a1f03b9de0
children b76be13e027e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2133
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 =========================
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 Roundup Tracker Templates
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 =========================
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 The templates distributed with Roundup are stored in the "share" directory
2826
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
6 nominated by Python. On Unix this is typically
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
7 ``/usr/share/roundup/templates/`` (or ``/usr/local/share...``) and
2133
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 on Windows this is ``c:\python22\share\roundup\templates\``.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 The template loading looks in four places to find the templates:
2826
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
11
2133
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 1. *share* - eg. ``<prefix>/share/roundup/templates/*``.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 This should be the standard place to find them when Roundup is
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 installed.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 2. ``<roundup.admin.__file__>/../templates/*``.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 This will be used if Roundup's run in the distro (aka. source)
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 directory.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 3. ``<current working dir>/*``.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 This is for when someone unpacks a 3rd-party template.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 4. ``<current working dir>``.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 This is for someone who "cd"s to the 3rd-party template dir.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 Templates contain:
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24
2826
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
25 - modules ``schema.py`` and ``initial_data.py``
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
26 - directories ``html``, ``detectors`` and ``extensions``
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
27 (with appropriate contents)
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
28 - template "marker" file ``TEMPLATE-INFO.txt``, which contains
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
29 the name of the template, a description of the template
eb0015a2caa5 template contents description changed to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2133
diff changeset
30 and its intended audience.
2133
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 An example TEMPLATE-INFO.txt::
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 Name: classic
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 Description: This is a generic issue tracker that may be used to track bugs,
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 feature requests, project issues or any number of other types
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 of issues. Most users of Roundup will find that this template
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 suits them, with perhaps a few customisations.
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 Intended-For: All first-time Roundup users
f01befe8a7fe *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40

Roundup Issue Tracker: http://roundup-tracker.org/