여기에 설정이 있습니다.콘텐츠 처분 보안
나는 Flask-WTF가있는 간단한 Flask 앱을 가지고 있습니다.
사용자가 하나의 텍스트 필드 (filename
)로 양식을 제출합니다.
양식은 CSRF 토큰이 (플라스크-WTF에서합니다.)
을 사용자가 양식을 제출하고 유효성을 검사 한 후 브라우저가 파일 이름으로 자동 생성 된 파일을 (즉, 서버 파일 시스템에서 파일이 아닌) 다운로드하는 경우 제출.
중요한 코드는 다음과 같습니다
response.headers['Content-Disposition'] = 'attachment; filename={0}.lsc'.format(filename)
이 어떻게 안전합니까?
즉, Content-Disposition
헤더에 임의의 텍스트를 삽입 할 수 있다면 무엇을 할 수 있습니까?
자동 생성 파일이란 무엇을 의미합니까? 파일의 출처는 어디입니까? –
요청시 생성됩니다. 나는. 템플릿을 가져 와서 세션의 데이터를 삽입 한 다음 다운로드 한 파일로 스트리밍합니다. 참고로 파일 이름 변수는 템플릿에서 사용되지 않습니다. 실제로 제공된 코드 행에서만 사용됩니다. – korylprince
서버 측 언어가 헤더 삽입에 취약하지 않은지 확인합니다 (예 :'filename'에 줄 바꿈 문자가 포함 된 경우). – SilverlightFox