1、SQL注入
from django.db import connection
def user_contacts(request):
user = request.GET['username']
sql = "SELECT * FROM user_contacts WHERE username = %s"
cursor = connection.cursor()
cursor.execute(sql, [user])
# ... do something with the results
底层 execute 方法采用了一个SQL字符串作为其第二个参数,这个SQL字符串包含若干’%s’占位符,execute方法能够自动对传入列表中的参数进行转义和插入。 你应该用* always* 这种方式构造自定义的SQL。
2、跨站点脚本 (XSS)
Django的模板系统自动转义所有的变量值。
3、伪造跨站点请求CSRF
{% CSRF_TOKEN %}
4\会话伪造/劫持