Skip to content

Commit b2d84c6

Browse files
Jami CogswellJami Cogswell
authored andcommitted
Java: more name-based heuristic tests to test regex
1 parent 77a781e commit b2d84c6

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

java/ql/test/query-tests/security/CWE-352/CsrfUnprotectedRequestTypeTest.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -371,13 +371,33 @@ public void bad10(@RequestParam String user) { // $ hasCsrfUnprotectedRequestTyp
371371
myBatisService.bad10(user);
372372
}
373373

374-
// Test name-based heuristic
374+
// Test name-based heuristic for method names that imply a state-change
375+
@GetMapping(value = "transfer")
376+
public String transfer(@RequestParam String user) { return "transfer"; } // $ hasCsrfUnprotectedRequestType
375377

376-
// BAD: method name implies a state-change
377-
@GetMapping(value = "delete")
378-
public String delete(@RequestParam String user) { // $ hasCsrfUnprotectedRequestType
379-
return "delete";
380-
}
378+
@GetMapping(value = "transfer")
379+
public String transferData(@RequestParam String user) { return "transfer"; } // $ hasCsrfUnprotectedRequestType
380+
381+
@GetMapping(value = "transfer")
382+
public String doTransfer(@RequestParam String user) { return "transfer"; } // $ hasCsrfUnprotectedRequestType
383+
384+
@GetMapping(value = "transfer")
385+
public String doTransferAllData(@RequestParam String user) { return "transfer"; } // $ hasCsrfUnprotectedRequestType
386+
387+
@GetMapping(value = "transfer")
388+
public String doDataTransfer(@RequestParam String user) { return "transfer"; } // $ hasCsrfUnprotectedRequestType
389+
390+
@GetMapping(value = "transfer")
391+
public String transfered(@RequestParam String user) { return "transfer"; } // OK: we look for 'transfer' only
392+
393+
@GetMapping(value = "transfer")
394+
public String dotransfer(@RequestParam String user) { return "transfer"; } // OK: we look for 'transfer' within camelCase only
395+
396+
@GetMapping(value = "transfer")
397+
public String doTransferdata(@RequestParam String user) { return "transfer"; } // OK: we look for 'transfer' within camelCase only
398+
399+
@GetMapping(value = "transfer")
400+
public String getTransfer(@RequestParam String user) { return "transfer"; } // OK: starts with 'get'
381401

382402
// Test Stapler web methods with name-based heuristic
383403

0 commit comments

Comments
 (0)