Hacker-proof your code: Drupal Security for developers

Neil Drumm
February 8
FOSDEM 2009

Basics

Stay up to date

Never use PHP filter

Always use HTML filter

SQL injection

SQL injection

SQL injection

Lists:
db_placeholders($arguments, $type = 'int')

Working with text

Working with text

Working with text

t($string, $args)

Working with text

Cross-site request forgery (CSRF)

Cross-site request forgery (CSRF)

Cross-site request forgery (CSRF)

Form API

Cross-site request forgery (CSRF)

For lightweight actions

Access checks

hook_perm() {
  return array('{permission name}', …);
}

user_access('{permission name}')

Menu access checks

$items['{path}'] = array(
  'access callback' => '{function}',
  'access arguments' => array({arguments}),
  …
);

Node access checks

Drupal Security Team

Reporting or fixing a security issue

Further information