安全编码Primefaces:p:inputText的抗操作验证。

问题描述 投票:1回答:1

我正在寻找一种抗操纵的用户输入验证方式,客户端对输入的限制,如maxlength="16 "或提交时的验证,可以被JavaScript欺骗。

<p:inputText id=myinputText maxlength="16" value="#{basicView.text}" />

客户端对输入的限制,如maxlength="16 "或提交时的验证,可以被JavaScript欺骗。basicView.text 或使用过的Primefaces服务器端验证器的参数为1GB,通过以下代码。

$("#myinputText").val('x'.repeat(1024*1024*1024));

什么是最好的方法来防止 攻击者导致OutOfMemory?

html validation security primefaces limit
1个回答
0
投票

防范这样的问题总是 "多层 "的。

客户端

目前浏览器的状态下,客户端的操作抵抗是不可能的(我也不认为将来会改变)。

应用层

通过让JSF也进行服务器端验证,你的应用程序得到了部分保护。

服务器端

如果你觉得这个保护还不够,大多数java-ee服务器(和servlet容器)也有一个 "最大帖子大小 "保护。正常的默认值是在10MB范围内。如果你设置的更高,比如在你的情况下,允许通过http上传大文件,那么检查你是否可以在每个url的基础上配置,如果不能,也许在每个应用程序的基础上配置,这样你就可以把应用程序分成两个独立的上传部分。

在服务器和客户端之间

在这两者之间多加一层,是(总是?

  • SSL是否终止
  • 同时请求中的DOS保护等
  • 负载平衡故障切换
  • 保护每个url的最大帖子大小(我知道例如apache http作为反向代理可以做到这一点。
© www.soinside.com 2019 - 2024. All rights reserved.