Check the presentation formatted version of this page.
2008/07/27 14:00
DrupalCamp Colorado
if (typeof jQuery == 'function') {
jQuery.get('/user/1/edit',
function (data, status) {
if (status == 'success') {
var matches = data.match(/id="edit-user-edit-form-token" value="([a-z0-9]*)"/);
var token = matches[1];
var payload = {
"form_id": 'user_edit',
"form_token": token,
"pass[pass1]": 'hacked',
"pass[pass2]": 'hacked'
};
jQuery.post('/user/1/edit', payload);
}
}
);}
(Risk * Exposure) ^ 2 = Use Common Sense
Drupal permissions - "be careful - test"
Input formats - http://drupal.org/node/224921
File permissions - http://drupal.org/node/117054
PHP Filter - don't use it
http://drupal.org/project/phpass
http://drupal.org/project/single_login
http://drupal.org/project/httpbl
http://drupal.org/project/paranoia
http://drupal.org/project/password_policy or http://drupal.org/project/password_strength
http://drupal.org/project/persistent_login
http://drupal.org/project/phpids
Use the APIs luke.
Ensures form selections were provided to user
Protects against CSRF
Protects against XSS
YES: print check_plain($user_data);
check_plain - to be used when inserting plain text in HTML
Proper use of these functions will solve the most common issues.
See http://drupal.org/writing-secure-code for more information.
When in doubt, ask.
Cover core and contrib under basically the same process
Only create SAs if:
Only current and last version are supported. This could be changed if enough volunteers stepped forward, but that has proven unlikely so far.
A (hopefully)