POST的seo技术4:formId的提取难点

编辑:最优化 日期:2016-04-12 10:28:18

在前一篇博客“数据提交与数据通信”中,焦大说SEO或者程序这些基本原理都是很简单的,但是在实际操作中却有着千差万别的细节,因此能把一些看似最简单事情做圆满并不容易。我们说数据提交,一个最简单的数据提交比如登录,只需要提交已经已知的账号、密码就可以了(当然一般都有时间戳),但是有时候的数据提交却复杂得多,不仅仅是原理复杂,而且很多参数都是未知的、加密的甚或RAND函数生成的,这时候很多问题就来了。


 

一般性数据参数,都是用来身份标识的。比如账号名称,也有用来验证身份的,比如密码,也有一些用于服务端进行标识的。比如一个页面第一次被打开,那么其cookies值和刷新后再次打开,对于浏览器端很多数据都是一致的(假使没有做修改),但是服务器端需要进行识别出来这2次的不一样,所以一般就加一个posttime参数进行识别。同理的,当你在登录百度贴吧后,服务器端也需要你一个识别的参数(很多时候用hash值代表),这个登录的hash参数可以用来你在做其他行为时候的一个识别,比如你在百度贴吧签到或者发帖。这时候,你提交数据的话,就需要率先把这个参数给提取出来,传递给提交的数据流,否则你就无法进行任何的行为操作。


 

最常见的这类识别参数是formid,一般情况下参数都会伴随着登录而产生的,所以提取这个参数的原理也很简单,位置确定以及参数明确。但是提取并不都是简单的,有的程序提取就会有非常多的难点,大体可以分为以下几点:


 

1,多个参数。因为我们做一个行为,可能设计的不仅仅是一个方面的识别,比如涉及到服务器对客户端的识别、服务器对用户身份的识别、服务器对所进行行为的识别、所进行行为的验证等,特别是有些参数需要结合其他的行为才能产生的,所以这时候就需要把这些中某些个参数进行多次的处理才能获得。比如你注册一个网站,可能需要几个步骤,那么在中间或者最后的步骤中可能就需要前面几个步骤的参数。


 

2,找不到参数或者难以提取参数。提取参数目前一般常用的有正则提取以及源码提取等,比如火车头的就是用源码截取的,但是一般性的用Python这类编程的话,大多采用正则来完成的,对于一些不常规的参数,需要非常的了解正则才可以。比如好推网(5d6d)的formid是一个数据组分开的,如果不精通正则的话,那就无法进行了。


 

3,JS加密的参数。我们知道一般性数据包传递都是明文传递的,但是也有很多数据传送为了安全采用了加密方式,比如最常见的MD5或者JS加密,数据被加密了有时候就需要把数据翻译出来,如果你知道翻译的规则,那么需要耗费一些机器就解决了,但是如果你连加密的规则都不懂的话,那么这个行为你就无法进行了。


 

4,参数是有随机函数产生的位置产生的。我们提取一个参数,首先是确定在哪里提取、提取什么、怎么取的。对于一些程序来说,在URI(不是URL)上采用完全随机函数来产生formid,那么这时候你就遇到了一个问题,参数去哪里提取?


 

以上这4种可能是最常见的提取难点,当然数据提交的问题不仅仅是参数提取上有困难,在其运行环境或者其他方面有时候也有些难点的。所以一件事听起来很容易,看起来很简单,但是做起来却并不是那么一件事。

标签:post   seo技术

本文地址:https://www.zuiseo.com/jishu/356.html