An attacker could try to pass a filename of content that could traverse the server path and control system files. Make sure all user-inputs is checked and sanitized before use.
classTest{@PostMapping(value="/fileupload")publicModelAndViewimportFile(@RequestParam("file")MultipartFilemyFile)throwsIOException{varuser=(WebGoatUser)SecurityContextHolder.getContext().getAuthentication().getPrincipal();vardestinationDir=newFile(fileLocation,user.getUsername());destinationDir.mkdirs();myFile.transferTo(newFile(destinationDir,myFile.getOriginalFilename()));log.debug("File saved to {}",newFile(destinationDir,myFile.getOriginalFilename()));returnnewModelAndView(newRedirectView("files",true),newModelMap().addAttribute("uploadSuccess","File uploaded successful"));}}
Compliant Code Examples
classTest{@PostMapping(value="/fileupload")publicModelAndViewimportFile(@RequestParam("file")MultipartFilemyFile)throwsIOException{// Safe: using sanitized filenameStringsanitizedFilename="upload_"+System.currentTimeMillis()+".dat";FiledestinationDir=newFile(fileLocation);myFile.transferTo(newFile(destinationDir,sanitizedFilename));returnnewModelAndView(newRedirectView("files",true));}}
シームレスな統合。 Datadog Code Security をお試しください
Datadog Code Security
このルールを試し、Datadog Code Security でコードを解析する
このルールの使用方法
1
2
rulesets:- java-security # Rules to enforce Java security.