如何绕过输入表单安全性

时间:2019-06-20 21:26:48

标签: javascript events electron

我试图仅出于学习目的而抓取一个网站。我遇到了严重的表单安全性:我尝试使用以下命令输入表单值 element.value = "some text"。该值出现在输入字段内,但是当我按下“提交”按钮时,它消失了,并且表单提交时输入字段没有任何值。我的问题是 这是什么类型的安全性? 我该怎么做才能绕过它?

我尝试了各种解决方案,例如使用jquery发送键,并且billiteRange库也尝试分发keyboardEvent,但对我来说没有任何用处。我已经尝试了最近5天,但是我没有运气。请指导我,我想这样做。

2 个答案:

答案 0 :(得分:0)

据我所知,(当前)在javascript / html级别上没有浏览器方面的安全性。网站可以在该级别上保护表格免受任何注入的javascript代码影响的最佳方法是隐藏密钥(可能是反csrf密钥)并在提交表格时使用它。

在任何其他情况下(当没有密钥或当您可以访问和读取密钥时),您都可以重新创建孔形式并将其提交,甚至只是将请求伪造到服务器。因此,除非要隐藏生成将发送到服务器的数据的方式,否则开发保护表单的代码毫无意义(但是,我不认为这是一种保护)。

在您的情况下,似乎无意或有意处理表单提交的javascript代码会阻止您尝试提交表单。这可能是由于验证功能未触发(最有可能的)。例如,更改输入值时,onchange事件不会触发。

您可以从浏览器的开发人员工具中查看表单上的所有事件及其输入,并弄清网页如何处理表单,但是愚弄网页的最简单方法是伪造漏洞请求。

答案 1 :(得分:0)

GramThanos的尼斯回答,您对我有很大帮助,这确实是一个很好的解释,帮助我打破了它。
只是 采用 var event = new Event('eventName',{bubbles:'true'}); element.dispatchEvent(event);