CharField에 코드 입력을 저장 한 다음 모델에 액세스하는 별도의 함수를 만들고 코드에 유해한 메서드가 포함되어 있지 않으면 파일에 기록됩니다.
파일 만들기 (빈 CharField가 빈 파일로 출력되기 때문에)는 보안 검사기로 위임 할 수있게 해줍니다. 모델 : 귀하의 설정은 다음과 같을 것이다
class MyModel(models.Model):
name = models.CharField(max_length=255)
code = models.CharField(MAX_FILE_LENGTH)
보기 :
def Submit_Code(request):
#Create MyModel using POST data
process_input_file(NEWLY_CREATED_MODEL_NAME)
return HttpResponse("Upload Successful")
def process_input_file(modelName):
#assuming unique name. Use "id=" instead if needed.
mm = MyModel.objects.get(name=modelName)
if passes_security_checks(mm.code):
f = open(mm.name, "r")
f.write(mm.code)
f.close()
편집 새로운보기 :
def Submit_Code(request):
mm = MyModel()
mm.name = request.POST.get('name')
f = open(mm.name,"r")
f.write(request.POST.get('code')
f.close()
#then associate the newly created file with the FileField however you want
#passing through authentication/checking if need be.
return HttpResponse("Upload Successful")
코드 필드에 제출 된 값을 어떻게 사용 하시겠습니까? FileField는 적합한 것처럼 들리지 않습니다. –
이것은 안전한 런타임 환경에서 실행되는 Python 코드가있는 파일입니다. 먼저 미리 컴파일해야하므로 별도의 파일로 작성하면 가장 편리합니다. – letoosh
이 생각은 솔직히 저에게 유죄를줍니다. 이것은 거대한 보안 구멍입니다. – eruciform