Skip to content

Commit ac9a567

Browse files
committed
CLAP-372 Docs: 스웨거 명세 작성
<footer> - 관련: #475
1 parent 48aaec6 commit ac9a567

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

src/main/java/clap/server/adapter/inbound/web/XssTestController.java renamed to src/main/java/clap/server/adapter/inbound/web/xss/XssTestController.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,43 @@
1-
package clap.server.adapter.inbound.web;
1+
package clap.server.adapter.inbound.web.xss;
22

33
import clap.server.common.annotation.architecture.WebAdapter;
44
import clap.server.common.annotation.swagger.DevelopOnlyApi;
55
import io.swagger.v3.oas.annotations.Operation;
6-
import jakarta.servlet.http.HttpServletRequest;
6+
import io.swagger.v3.oas.annotations.tags.Tag;
77
import lombok.extern.slf4j.Slf4j;
88
import org.springframework.http.ResponseEntity;
99
import org.springframework.web.bind.annotation.*;
1010

1111
@Slf4j
1212
@WebAdapter
1313
@RequestMapping("/api/xss-test")
14+
@Tag(name = "xss 공격 테스트 API", description = "아래와 같은 페이로드들에 대해 테스트합니다.\n" +
15+
"1. 기본적인 스크립트 삽입: `<script>alert('xss')</script>`\n" +
16+
"2. 이미지 태그를 이용한 XSS: `<img src=x onerror=alert('xss')>`\n" +
17+
"3. JavaScript 프로토콜: `javascript:alert('xss')`\n" +
18+
"4. HTML 이벤트 핸들러:` <div onmouseover=\"alert('xss')\">hover me</div>`\n" +
19+
"5. SVG를 이용한 XSS: `<svg><script>alert('xss')</script></svg>`\n" +
20+
"6. HTML5 태그를 이용한 XSS: `<video><source onerror=\"alert('xss')\">`")
1421
public class XssTestController {
1522

1623
@GetMapping
1724
@DevelopOnlyApi
18-
@Operation(summary = "단일 파라미터 xss test")
25+
@Operation(summary = "단일 파라미터 test")
1926
public ResponseEntity<String> testGetXss(@RequestParam String input) {
2027
log.info("Received GET input: {}", input);
2128
return ResponseEntity.ok("Processed GET input: " + input);
2229
}
2330

2431
@PostMapping
2532
@DevelopOnlyApi
26-
@Operation(summary = "dto xss test")
33+
@Operation(summary = "dto test")
2734
public ResponseEntity<XssTestResponse> testPostXss(@RequestBody XssTestRequest request) {
2835
log.info("Received POST input: {}", request);
2936
return ResponseEntity.ok(new XssTestResponse(request.content()));
3037
}
3138

3239
@GetMapping("/multi-params")
33-
@Operation(summary = "다중 파라미터 XSS 테스트")
40+
@Operation(summary = "다중 파라미터 테스트")
3441
public ResponseEntity<String> testMultiParamXss(@RequestParam(value = "inputs", required = false) String[] inputs) {
3542
if (inputs == null || inputs.length == 0) {
3643
return ResponseEntity.badRequest().body("No inputs provided");

src/main/java/clap/server/adapter/inbound/web/XssTestRequest.java renamed to src/main/java/clap/server/adapter/inbound/web/xss/XssTestRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package clap.server.adapter.inbound.web;
1+
package clap.server.adapter.inbound.web.xss;
22

33
import jakarta.validation.constraints.NotNull;
44

src/main/java/clap/server/adapter/inbound/web/XssTestResponse.java renamed to src/main/java/clap/server/adapter/inbound/web/xss/XssTestResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package clap.server.adapter.inbound.web;
1+
package clap.server.adapter.inbound.web.xss;
22

33
public record XssTestResponse(
44
String sanitizedContent

0 commit comments

Comments
 (0)