과도하게 허용된 CORS 설정 (Permissive CORS)
Permissive Cross-Domain Policy with Untrusted Domains
Last updated
Permissive Cross-Domain Policy with Untrusted Domains
Last updated
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class InsecureCORS {
public void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
String origin = request.getHeader("Origin"); // 사용자 입력 기반 설정
response.setHeader("Access-Control-Allow-Origin", origin); // 위험한 코드
}
}import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Set;
public class SecureCORS {
private static final Set<String> ALLOWED_ORIGINS = Set.of(
"https://example.com",
"https://sub1.example.com",
"https://sub2.example.com"
);
public void processRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
String origin = request.getHeader("Origin");
if (origin != null && ALLOWED_ORIGINS.contains(origin)) {
response.setHeader("Access-Control-Allow-Origin", origin);
} else {
response.setHeader("Access-Control-Allow-Origin", "https://example.com"); // 기본 허용 도메인
}
}
}