jquery+php:发布一小小的网站安全策略,望高手捧场
首先声明,该文为原创,由于我对网站安全知道得很少,所以希望各路高手提出高见,完善我的这个策略。
缘起:jquery是目前用户体验效果最好的插件(暂时不考虑FLASH了,这玩意太笨重,目前的网速还承载艰难。),所以做页面的时候,往往使js或者jquery做前端,达到良好的用户体验。php之类做后台。
但问题是,前台的JS很容易绕过。所以从页面采集来的数据,还需要php重新过滤。如一个注册页面需要采集邮编。则出现这样的情况:
用户输入的数据——JS正则判断(前端)——php正则判断(后台)——交互数据库。
这里,连用两种语言的正则,而且是必须的。功效重复,使得网站代码量变大。如果需要采集的数据量很多,从姓名到地址到电话到QQ一直到三姑妈的二儿子的女友的爸爸的名字,总之一大堆input select radio等等,这时候,前端的JQUERY自然很大,而后台PHP分析处理的数据很大,偏偏在这样处理表单的功能上,php不如JS简洁高效。
所以我想了个小办法。后台php不再进行数据分析过滤,一切都交给jquery来进行。为了防止用户绕过jquery,输入恶意代码。我在数据库增加一个表。表中记载前台表单action的值,或者说表单处理php文件地址(绝对路径和相对路径)在,暂时其名form_path。
然后再表单页面,新增一个session,用来存贮页面地址。
当表单提交,这个session值不等于form_path时,退出。如此,可以强迫用户使用jquery写成的表单输入页面。绕过JS处理的应该是伪造的表单,所获得的session值自然不符),如此,我在php处理页面,可以大胆直接post,不需要再过滤数据,节省了很多代码。
OVER
大家觉得这个策略有什么漏洞?还有什么需要改进的?