diff --git a/reviewboard/accounts/views.py b/reviewboard/accounts/views.py
index 9882c708a4aeb9b93113d64bb2a02727e5cd254c..89b071e506376c515d9155b3912e2acc5aa1c16d 100644
--- a/reviewboard/accounts/views.py
+++ b/reviewboard/accounts/views.py
@@ -4,6 +4,7 @@ from django.contrib.auth.decorators import login_required
 from django.core.urlresolvers import reverse
 from django.http import Http404, HttpResponseBadRequest, HttpResponseRedirect
 from django.shortcuts import render
+from django.views.decorators.csrf import csrf_protect
 from djblets.auth.views import register
 from djblets.siteconfig.models import SiteConfiguration
 
@@ -14,6 +15,7 @@ from reviewboard.accounts.pages import get_page_classes
 from reviewboard.accounts.signals import user_registered
 
 
+@csrf_protect
 def account_register(request, next_url='dashboard'):
     """
     Handles redirection to the appropriate registration page, depending
@@ -37,6 +39,7 @@ def account_register(request, next_url='dashboard'):
     return HttpResponseRedirect(reverse("login"))
 
 
+@csrf_protect
 @login_required
 def user_preferences(request, template_name='accounts/prefs.html'):
     """Displays the My Account page containing user preferences.
diff --git a/reviewboard/admin/views.py b/reviewboard/admin/views.py
index e1c09d3cf4709fa854597c87448f48e2e6d67e1d..cb4ff8fb5d3701722cb861742cafb7d19b63a327 100644
--- a/reviewboard/admin/views.py
+++ b/reviewboard/admin/views.py
@@ -10,6 +10,7 @@ from django.shortcuts import render_to_response
 from django.template.context import RequestContext
 from django.template.loader import render_to_string
 from django.utils.translation import ugettext as _
+from django.views.decorators.csrf import csrf_protect
 from djblets.siteconfig.models import SiteConfiguration
 from djblets.siteconfig.views import site_settings as djblets_site_settings
 
@@ -64,6 +65,7 @@ def security(request, template_name="admin/security.html"):
     }))
 
 
+@csrf_protect
 @staff_member_required
 def site_settings(request, form_class,
                   template_name="siteconfig/settings.html"):
@@ -72,6 +74,7 @@ def site_settings(request, form_class,
     })
 
 
+@csrf_protect
 @staff_member_required
 def ssh_settings(request, template_name='admin/ssh_settings.html'):
     client = SSHClient()
diff --git a/reviewboard/extensions/views.py b/reviewboard/extensions/views.py
index 73585b06d4c290d23cd36bcff051fda979bd3f75..df787c963467cbcb9c754c27bda7db6dc93a1c03 100644
--- a/reviewboard/extensions/views.py
+++ b/reviewboard/extensions/views.py
@@ -1,10 +1,12 @@
 from __future__ import unicode_literals
 
 import djblets.extensions.views as djblets_ext_views
+from django.views.decorators.csrf import csrf_protect
 
 from reviewboard.extensions.base import get_extension_manager
 
 
+@csrf_protect
 def configure_extension(request, ext_class, form_class,
                         template_name='extensions/configure_extension.html'):
     return djblets_ext_views.configure_extension(request, ext_class,
diff --git a/reviewboard/templates/accounts/prefs_page.html b/reviewboard/templates/accounts/prefs_page.html
index 3246675cfbfc9b1be5965f3f06343b23eafa94ab..18d80b3f47e76f0dac32c46bcea8261c3c066965 100644
--- a/reviewboard/templates/accounts/prefs_page.html
+++ b/reviewboard/templates/accounts/prefs_page.html
@@ -5,6 +5,7 @@
   <h1 class="title">{{form.form_title}}</h1>
   <div class="main">
    <form method="post" action=".#{{page.page_id}}" id="form_{{form.form_id}}">
+    {% csrf_token %}
     {{form.render|safe}}
    </form>
   </div>
diff --git a/reviewboard/templates/accounts/register.html b/reviewboard/templates/accounts/register.html
index eb9d1abfae306edec06f6582186b95d510577a68..763997f1db38dd6d9584831859eb0b955d91bb8e 100644
--- a/reviewboard/templates/accounts/register.html
+++ b/reviewboard/templates/accounts/register.html
@@ -16,6 +16,8 @@
 
  <form method="post" action="." class="auth-section main-auth-section"
        id="register_form">
+  {% csrf_token %}
+
   <div class="auth-form-row auth-field-row">
    {{form.username.label_tag}}
    {{form.username}}
diff --git a/reviewboard/templates/admin/ssh_settings.html b/reviewboard/templates/admin/ssh_settings.html
index 4ecc970853a94c565f9cf1d544348d2c533ba3ad..21424cd7146772062862b6538120a494639c870d 100644
--- a/reviewboard/templates/admin/ssh_settings.html
+++ b/reviewboard/templates/admin/ssh_settings.html
@@ -33,6 +33,7 @@
  <div class="form-row">
   <label></label>
   <form method="POST" action=".">
+   {% csrf_token %}
    {{form.delete_key}}
    <input type="submit" value="{% trans "Delete Key" %}" />
   </form>
@@ -54,6 +55,7 @@
   {% endblocktrans %}
   </p>
   <form method="POST" action=".">
+   {% csrf_token %}
    {{form.generate_key}}
    <input type="submit" value="{% trans "Generate Key" %}" />
   </form>
@@ -67,6 +69,7 @@
   {% endblocktrans %}
   </p>
   <form method="POST" action="." enctype="multipart/form-data">
+   {% csrf_token %}
    {{form.keyfile.errors}}
    {{form.keyfile}}<br />
    <input type="submit" value="{% trans "Upload Key" %}" />
