我正在为一个应用程序开发一个API,该应用程序能够根据其solutionID(是一个整数)找到所谓的ProductSolutions。
@Repository
public interface ProductSolutionRepository extends CrudRepository<ProductSolution, String> {
public List<ProductSolution> findBySolutionId(@Param("solutionId") int solutionId);
}
发送带有字符串而不是整数的请求时(
localhost:8080/api/v1/productSolutions/search/findBySolutionId?solutionId=dangerousscript
)API返回错误,并显示以下消息:
“危险脚本”;嵌套异常为
Java语言lang.NumberFormatException:对于输入字符串:
\“危险脚本”`
虽然Chrome和Firefox似乎很巧妙地避开了输入(并且不执行任何脚本),但人们仍然担心我们的API可能被用于跨站点脚本攻击。
解决这个问题的一个简单方法是删除用户在抛出异常时提供的输入,或者创建自己的错误页面。我可以用什么方式配置spring boot以引发自定义异常?