- 对输入数据进行过滤和转义,避免潜在的XSS攻击。可使用OWASP的ESAPI库进行处理。
示例代码:
import org.owasp.esapi.ESAPI;
import org.springframework.util.MultiValueMap;
public void processFormData(MultiValueMap<String, String> formData) {
for (String key : formData.keySet()) {
for (String value : formData.get(key)) {
formData.put(key, ESAPI.encoder().encodeForHTML(value)); // 对value进行HTML编码
}
}
}
- 使用安全的HTTP头来防止XSS攻击。可参考OWASP的Secure Headers Project进行设置。
示例代码:
import org.springframework.http.HttpHeaders;
public HttpHeaders createSecureHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.set("X-XSS-Protection", "1; mode=block"); // 启用浏览器内置的XSS过滤器
headers.set("X-Content-Type-Options", "nosniff"); // 不允许浏览器嗅探MIME类型
headers.set("X-Frame-Options", "DENY"); // 不允许页面在<frame>或<iframe>中展示
return headers;
}