Use of unsanitized data to open file This product is not supported for your selected
Datadog site . (
).
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우
언제든지 연락주시기 바랍니다.
이 규칙을 사용해 보세요 ID: python-flask/open-file-unsanitized-data
Language: Python
Severity: Error
Category: Security
CWE : 22
Description Use of unsanitized from incoming request, leading to potential data leak and lack of control of the service. Do not use unsanitized data to control file operations. The code should check any incoming data and make sure it’s safe to use it.
Learn More Non-Compliant Code Examples @app.route ( "/read" )
def read_file ():
filename = request . args . get ( "filename" )
if not filename :
return "Missing 'filename' parameter" , 400
try :
with open ( filename , "r" ) as f :
content = f . read ()
return f "<pre> { content } </pre>"
except Exception as e :
return f "Error: { str ( e ) } " , 500
if __name__ == "__main__" :
app . run ( host = "0.0.0.0" , port = 80 )
import flask
import requests
app = flask . Flask ( __name__ )
@app.route ( "/route/to/resource/<resource_id>" )
def resource1 ( resource_id ):
with open ( resource_id ) as f :
pass
with open ( f "/path/to/ { resource_id } " ) as f :
pass
with open ( "/path/to/ {0} " . format ( resource_id )) as f :
pass
with open ( "/path/to/ {0} " . other ( resource_id )) as f :
pass
@app.route ( "/route/to/resource/<resource_id>" )
def resource2 ( resource_id ):
file1 = open ( resource_id )
file2 = open ( f "/path/to/ { resource_id } " )
file3 = open ( "/path/to/ {0} " . format ( resource_id ))
@app.route ( "/route/to/resource" )
def resource2 ():
resource_id = flask . request . args . get ( "resource_id" )
file1 = open ( resource_id )
file2 = open ( f "/path/to/ { resource_id } " )
file3 = open ( "/path/to/ {0} " . format ( resource_id ))
from flask import Flask , request , render_template
app = Flask ( __name__ , static_url_path = '/static' , static_folder = 'static' )
app . config [ 'DEBUG' ] = True
@app.route ( "/" )
def start ():
return render_template ( "index.html" )
Compliant Code Examples import flask
import requests
app = flask . Flask ( __name__ )
@app.route ( "/route/to/resource/<resource_id>" )
def resource2 ( resource_id ):
sanitized_resource_id = sanitize ( resource_id )
file1 = open ( sanitized_resource_id )
원활한 통합. Datadog Code Security를 경험해 보세요