zoukankan      html  css  js  c++  java
  • python模拟浏览器文件上传,csrf放行

    服务器端视图函数

    from django.shortcuts import render,HttpResponse
    from django.views.decorators.csrf import csrf_exempt
    
    # Create your views here.
    @csrf_exempt#这个可以对csrf进行放行
    def up(request,):
        file_list = request.FILES.getlist('save_data')
        for i in file_list:
            for x in i :
                print(x)
        return HttpResponse('ok')
    

     客户端

    import time
    import datetime
    import hashlib
    import os
    import random
    import sys
    import requests
    import json
    
    from requests_toolbelt.multipart.encoder import MultipartEncoder
    url = 'http://127.0.0.1:8000/up/'#文件上传的url
    
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0',
        'Referer': url
    }
    
    multipart_encoder = MultipartEncoder(
        fields = {
            'save_name': '论坛.txt',#文件名
            'save_data': ('论坛.txt', open('论坛.txt', 'rb'), 'application/octet-stream')
        },
        boundary = '-----------------------------' + str(random.randint(1e28, 1e29 - 1))
    )
    
    headers['Content-Type'] = multipart_encoder.content_type
    #请求头必须包含一个特殊的头信息,类似于Content-Type: multipart/form-data; boundary=${bound}
    
    responseStr = requests.post(url, data=multipart_encoder, headers=headers)
    print(responseStr.text)#服务器的响应
    
  • 相关阅读:
    BZOJ3674:可持久化并查集加强版
    BZOJ3772:精神污染
    BZOJ3932:[CQOI2015]任务查询系统
    BZOJ3123:[SDOI2013]森林
    BZOJ1926:[SDOI2010]粟粟的书架
    029 列表类型内置方法
    02 Python爬虫之盗亦有道
    01 Python爬虫之Requests库入门
    028 字符串类型内置方法
    027 数字类型内置方法
  • 原文地址:https://www.cnblogs.com/16795079a/p/11168847.html
Copyright © 2011-2022 走看看