Cross Site Scripting Cheat Sheet有许多防范XSS攻击的规则.我想在我的网络应用程序中实现这些建议,该应用程序使用Spring MVC Jackson JPA Hibernate Bean Validation.作为示例,请考虑以下与我的应用程序中的代码类似的代码.
public class MessageJson {
@NotEmpty // Bean Validation annotation
private String title;
@NotEmpty
private String body;
// ... etc getters / setters
}
public class BolgPostController
{
@RequestMapping(value="messages",method=RequestMethod.POST)
public void createMessage(@Valid @RequestBody MessageJson message)
{
// **Question** How do I check that the message title and body don't contain
// nasty javascripts and other junk that should not be there?
// Call services to write data to the datababse
}
@RequestMapping(value="messages",method=RequestMethod.get)
public @ResponseBody List createMessage()
{
// get data from the database
// **Question** How do I escape all the data in the list of MessageJson before
I send it back to the data.
}
}
我可以看到以下方法来实现备忘单规则:
>选项A在每个控制器方法中手动实现它们.
>选项B为Spring MVC配置一些扩展,可以自动为我完成
>选项C配置杰克逊以便它可以为我做,因为我的大部分输入/输出都通过杰克逊
我在这三个选项中的任何一个中寻找SpringMVC的一些示例配置,优先选项B和C.