Skip to content

Commit 48e347c

Browse files
committed
add emptyReferer of jsonp
1 parent 56d5ba1 commit 48e347c

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
- [Fastjson](https://github.com/JoyChou93/java-sec-code/wiki/Fastjson)
3535
- [CORS](https://github.com/JoyChou93/java-sec-code/wiki/CORS)
3636
- [CSRF](https://github.com/JoyChou93/java-sec-code/wiki/CSRF)
37+
- [JSONP](https://github.com/JoyChou93/java-sec-code/wiki/JSONP)
3738
- [Others](https://github.com/JoyChou93/java-sec-code/wiki/others)
3839

3940

src/main/java/org/joychou/controller/JSONP.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,27 @@ private static String referer(HttpServletRequest request, HttpServletResponse re
3030
return callback + "(" + info + ")";
3131
}
3232

33+
/**
34+
* Desc: 直接访问不限制Referer,非直接访问限制Referer (开发同学喜欢这样进行JSONP测试)
35+
* URL: http://localhost:8080/jsonp/emptyReferer?callback=test
36+
*/
37+
@RequestMapping("/emptyReferer")
38+
@ResponseBody
39+
private static String emptyReferer(HttpServletRequest request, HttpServletResponse response) {
40+
String referer = request.getHeader("referer");
41+
response.setHeader("Access-Control-Allow-Origin", "*");
42+
if (null == referer) {
43+
String callback = request.getParameter("callback");
44+
return callback + "(" + info + ")";
45+
} else {
46+
Security sec = new Security();
47+
if (!sec.checkSafeUrl(referer, urlwhitelist)) {
48+
return "Referer is not safe.";
49+
}
50+
String callback = request.getParameter("callback");
51+
return callback + "(" + info + ")";
52+
}
53+
}
3354

3455
// http://localhost:8080/jsonp/sec?callback=test
3556
@RequestMapping("/sec")

0 commit comments

Comments
 (0)