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
大家觉得这个策略有什么漏洞?还有什么需要改进的?
缘起: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
大家觉得这个策略有什么漏洞?还有什么需要改进的?
...全文
相关推荐
jQuery+Ajax+PHP+Mysql实现分页显示数据
用jQuery,结合PHP和Mysql,通过实例讲解如何实现Ajax数据加载效果。
毕业设计_JQuery+HTML+PHP自动组卷系统
PHP, JQuery编写的自动组卷系统,完成功能包括,按照随机原则自动组卷,选择试卷难易度,完成组卷后转成word文档,并提供下载
jquery+ajax+php无刷新分页
jquery+ajax+php无刷新分页
PHP与jQuery开发实例PHP jQuery Cookbook.pdf
PHP与jQuery开发实例PHP jQuery Cookbook.pdf
php+mysql+jquery网页版好友在线实时聊天
php+mysql+jquery网页版好友在线实时聊天,好友列表面板,支持多个好友同时实时聊天,支持刷新页面仍然可继续聊天,不关闭当前聊天,支持获取不在线时的未读消息,收到消息闪动提醒等


