Go to file
Joey Hess 72b5ef2c5f Fix CSRF attacks against the preferences and edit forms. Closes: #475445
The fix involved embedding the session id in the forms, and not allowing the
forms to be submitted if the embedded id does not match the session id.

In the case of the preferences form, if the session id is not embedded,
then the CGI parameters are cleared. This avoids a secondary attack where the
link to the preferences form prefills password or other fields, and
the user hits "submit" without noticing these prefilled values.

In the case of the editpage form, the anonok plugin can allow anyone to edit,
and so I chose not to guard against CSRF attacks against users who are not
logged in. Otherwise, it also embeds the session id and checks it.

For page editing, I assume that the user will notice if content or commit
message is changed because of CGI parameters, and won't blndly hit save page.
So I didn't block those CGI paramters. (It's even possible to use those CGI
parameters, for good, not for evil, I guess..)

The only other CSRF attack I can think of in ikiwiki involves the poll plugin.
It's certianly possible to set up a link that causes the user to unknowingly
vote in a poll. However, the poll plugin is not intended to be used for things
that people would want to attack, since anyone can after all edit the poll page
and fill in any values they like. So this "attack" is ignorable.
2008-04-10 16:35:30 -04:00
IkiWiki Fix CSRF attacks against the preferences and edit forms. Closes: #475445 2008-04-10 16:35:30 -04:00
debian Fix CSRF attacks against the preferences and edit forms. Closes: #475445 2008-04-10 16:35:30 -04:00
doc Fix CSRF attacks against the preferences and edit forms. Closes: #475445 2008-04-10 16:35:30 -04:00
plugins scan hook works, remove NotImplemented exception 2008-03-21 19:17:00 -04:00
po Fix CSRF attacks against the preferences and edit forms. Closes: #475445 2008-04-10 16:35:30 -04:00
t add loadindex/saveindex test suite 2008-03-22 13:56:44 -04:00
templates Fix CSRF attacks against the preferences and edit forms. Closes: #475445 2008-04-10 16:35:30 -04:00
underlays Add robots noindex,follow to redirection pages 2008-03-11 15:44:37 -04:00
.gitignore .gitignore: Ignore build-stamp 2008-01-26 22:25:43 -08:00
.perlcriticrc * Various minor fixes and stylistic improvements suggested by Perl::Critic. 2007-08-15 08:08:32 +00:00
CHANGELOG * Work on firming up the plugin interface: 2006-09-09 22:50:27 +00:00
IkiWiki.pm Added a hardlink option in the setup file, useful if the source and dest are on the same filesystem and the wiki includes large media files, which would normally be copied, wasting time and space. 2008-03-29 21:02:47 -04:00
Makefile.PL defer po and pot file updating until package build time 2008-03-21 16:32:23 -04:00
NEWS * Work on firming up the plugin interface: 2006-09-09 22:50:27 +00:00
README * Disable taint checking for all builds as people keep complaining about it, 2008-02-24 15:42:43 -05:00
docwiki.setup remove "local" changes 2008-01-29 17:28:31 -05:00
ikiwiki-makerepo Make makerepo set the Git merge remote 2008-03-11 15:40:07 -04:00
ikiwiki-mass-rebuild display if group setting fails 2007-12-07 01:09:48 -05:00
ikiwiki-transition fix transitioning of page state 2008-03-21 13:22:47 -04:00
ikiwiki-update-wikilist commit. 2007-09-06 00:32:11 +00:00
ikiwiki-w3m.cgi * Support a w3mmode, which lets w3m run ikiwiki using its local CGI 2006-07-07 21:00:48 +00:00
ikiwiki.in Add --prefix-directives and --no-prefix-directives options to ikiwiki 2008-02-08 18:35:12 -08:00
mdwn2man fix 2007-03-31 06:56:52 +00:00
pm_filter if NOTAINT is not set, disable tainting 2008-02-24 16:01:10 -05:00
wikilist Fix typo. 2007-04-09 23:54:32 +00:00

README

Use ./Makefile.PL to generate a Makefile, "make" will build the
documentation wiki and a man page, and "make install" will install ikiwiki.

A few special variables you can set while using the Makefile:

PROFILE=1 turns on profiling for the build of the doc wiki. Uses Devel::Profile

NOTAINT=0 turns on the taint flag in the ikiwiki program. (Not recommended
unless your perl is less buggy than mine -- see
http://bugs.debian.org/411786)

All other documentation is in the ikiwiki documentation wiki, which is also
available online at <http://ikiwiki.info/>