我想要的: 我使用一个网站(我希望保持匿名)来购买证券。这是非常复杂的,据我所知,在JavaScript中编码。 我想用这个网站做的是注入'要求从单独的流程购买东西。因此,无需手动搜索我想要购买的商品并手动填写表格,点击购买并确认“您确定要下订单吗?”#39;弹出窗口我只想在直接按下确认按钮时发送正在发送到服务器的任何命令/请求。
要格外明确:我只是不想通过手动麻烦而只是发送预先构建的请求,其中嵌入了必要的参数。 我当然不打算做任何恶意的事情,只是让我的订单输入更快更顺畅。没有必要自动登录或类似的东西。
我知道这不是很多,但是我把它扔到那里并提出问题:可以这样做吗? 我真的不知道这些东西是如何在幕后工作的,也许请求以某种方式被加密到一些自定义格式,几乎不可能进行逆向工程,或者可能不是。
答案 0 :(得分:2)
"将"可能是错误的术语。大多数人会想到sql注入或javascript注入,这通常是恶意活动。这似乎不是你想要的。
您正在寻找的是一种自动化工具。有很多工具可供使用。尝试谷歌搜索"网络自动化工具。" Selenium http://www.seleniumhq.org/和PhantomJS http://phantomjs.org/很受欢迎。
此外,您可以重新创建实际购买安全性的请求。如果您使用Chrome,则可以打开开发人员工具,并在浏览网站时查看“网络”标签上显示的内容。 Firefox和Edge也有类似的工具。当您进行购买时,您将看到放置它的实际网络请求。然后,根据网站的实现方式,您可以使用Postman等工具复制该请求。
然而,在您执行上述任何操作之前,我建议您查看您提及的网站的TOS。他们可能会特别禁止这种活动。
答案 1 :(得分:1)
我想详细说明我的评论和Michael Ratliff回答。
例如。
我们得到了一些服务。这项服务的管理可以通过网络界面完成。但仅在手动模式下,没有API(是的,2016年,没有API)。因此,起初管理工作并不多,我们手动完成。
但是时间过去了,管理工作量呈指数级增长,因此我们遇到了这项工作必须自动化的情况(即使没有API,甚至很少有新版本发布)。
我们做了什么:
我们在浏览器中打开了我们需要的页面,打开 Inspect Element (在Firefox中),打开网络,填写网络表单,按下我们需要的按钮。在左侧部分,我们看到所有服务请求,通过按右侧的任何请求,会显示发送/获取的内容,所有请求及其参数的完整描述。然后我们接受了这些参数,更改它们并发送回服务器。然而,有种逆向工程。
对于自动化,我们使用PHP和CURL。目前,几乎所有与服务有关的工作都是自动化的。
是的,我们使用过Selenium(在PHP和CURL之前)。你可以打开你需要的表格。按 Rec 在Web表单上执行一些操作,Selenium会收集这些数据,然后您可以在Selenium脚本中更改参数并重新运行它。