Potential path traversal from request This product is not supported for your selected
Datadog site . (
).
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우
언제든지 연락주시기 바랍니다.
이 규칙을 사용해 보세요 ID: java-security/path-traversal-file-read
Language: Java
Severity: Error
Category: Security
CWE : 22
Description The filename of the file being opened comes from an input parameter. If an unfiltered parameter is passed to the API, any location on the filesystem can be read.
Learn More Non-Compliant Code Examples class MyClass {
@GET
@Path ( "/images/{image}" )
@Produces ( "images/*" )
public Response getImage ( @javax.ws.rs.PathParam ( "image" ) String image ) {
File file = new File ( "resources/images/" , image ); //Weak point
if ( ! file . exists ()) {
return Response . status ( Status . NOT_FOUND ). build ();
}
return Response . ok (). entity ( new FileInputStream ( file )). build ();
}
}
Compliant Code Examples import org.apache.commons.io.FilenameUtils ;
class MyClass {
@GET
@Path ( "/images/{image}" )
@Produces ( "images/*" )
public Response getImage ( @javax.ws.rs.PathParam ( "image" ) String image ) {
File file = new File ( "resources/images/" , FilenameUtils . getName ( image )); //Fix
if ( ! file . exists ()) {
return Response . status ( Status . NOT_FOUND ). build ();
}
return Response . ok (). entity ( new FileInputStream ( file )). build ();
}
@GET
@Path ( "/images/{image}" )
@Produces ( "images/*" )
public Response getImage ( @javax.ws.rs.PathParam ( "image" ) String image ) {
File file = new File ( "resources/images/" , image2 ); //Weak point
if ( ! file . exists ()) {
return Response . status ( Status . NOT_FOUND ). build ();
}
return Response . ok (). entity ( new FileInputStream ( file )). build ();
}
}
원활한 통합. Datadog Code Security를 경험해 보세요