上线时的一些安全问题

1. nginx的版本不要泄露

server_tokens off;

2. nginx返回头添加禁止iframe的东西

add_header X-Frame-Options SAMEORIGIN;

3. 接口限制一下跨域的问题

INSTALLED_APPS = [
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders',  # 注册APP
    'my_app',
]


MIDDLEWARE = [
    *
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',  # 添加中间件
    'django.middleware.common.CommonMiddleware',
    * 

]

CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
    "http://test1.example.com",
    "https://test1.example.com",
    "http://test2.example.com",
    "https://test2.example.com",
)

4. Cookie设置secure

response.set_cookie("sessionid", session_id, domain=".example.com", secure=True)

5. 发送验证码的一分钟重复发送时候,手机号前面有$1$等字符就是两个手机号,就会出现短信轰炸。需要对手机号做个正则校验

re.compile("^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$").search(phone)

image.png

5. nginx的alias 问题

alias父集的location应该以目录符结尾
如:
location /www/ {  
  alias /data/www/;
}

你可能感兴趣的:(上线时的一些安全问题)