php中preg_match过滤URL非法参数程序

PHP开发中经常用到URL传递参数,对传递的参数要进行安全过滤,过滤URL中非法参数,这是php安全的一个细小的地方,却事关安全的大事。URL参数一般都是数字或者字母加上”-“或者”_”组成,参数带有其他的符号的都要进行过滤,以免带来安全问题。对URL传参进行非法字符过滤,用preg_match很容易判断非法的参数。

 代码如下 复制代码

if(!preg_match("/^[a-z0-9_\-]+$/i",$this->commentid))
    $this->_show_msg(L('illegal_parameters'));

这里$this->commentid就是从URL中$_GET方式传递过来的参数,接收URL$_GET方式传递的参数的时候也要进行处理,如:

 代码如下 复制代码

$this->commentid = isset($_GET['commentid']) && trim(urldecode($_GET['commentid'])) ? trim(urldecode($_GET['commentid'])) : $this->_show_msg(L('illegal_parameters'));

PHP开发安全问题不容忽视,这些很细小的问题很简单就可以处理,但是容易倏忽。很多的漏洞都是从这里找到的。

时间: 2024-10-23 13:23:04

php中preg_match过滤URL非法参数程序的相关文章

VC8/9中CRT函数对非法参数的处理

在VC8/9中,许多CRT函数会检查传入的参数的合法性.当CRT函数检测到一个非法参数传入时,它会调用"非法参数处理例程".默认的非法参数处理例程是调用Watson Crash Reporting,让应用程序崩溃,并询问用户是否愿意发送崩溃数据转储给Microsoft分析.在Debug模式下,非法参数还会产生失败的断言. 可以通过调用_set_invalid_parameter_handler来设置自定义处理例程,来代替默认的处理例程.如果你指定的处理例程没有终止程序,那么在该处理例程

JS过滤url参数特殊字符的实现方法

 本篇文章主要是对JS过滤url参数特殊字符的实现方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在URL传递参数中,有一些特殊字符,而这些些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了. 下表中列出了一些URL特殊符号及编码十六进制值  1. + URL 中+号表示空格 %2B  2. 空格 URL中的空格可以用+号或者编码 %20  3. / 分隔目录和子目录 %2F  4. ? 分隔实际的 URL 和参数 %3F  5.

javascript中escape解决过滤URL传值问题

escape解决过滤URL传值问题在利用ajax传值的时候,遇到特殊符号过滤问题,特殊符号测试 XML/HTML代码01.特殊符号测试哈:~!@#$&%^*()<>,你好吗?<script>alert("hello world");</script>  因为特殊字符里面有一个&符号,会被当作与data类型传多个传时的连接符号&一样,所以其后面的字符串会被当作参数值来传递, 解决方法 使用的应为encodeURIComponen

如何在Silverlight应用程序中获取ASP.NET页面参数

概述 在开发Silverlight应用程序时,我们经常会遇到这样一种情况,需要在Silverlight应用程序的 UserControl中获取ASP.NET页面参数,这个参数不一定来自于当前Silverlight应用程序的宿主页面,而 有可能来自于其它的ASP.NET页面. 需求 如下面的项目结构,我们会在Default.aspx页面中需要传递两个值到SilverlightTestPage.aspx页面 ,并且需要在SilverlightTestPage.aspx页面所宿主的Silverligh

从URL中提取参数与将对象转换为URL查询参数的实现代码_javascript技巧

一.从URL中提取参数 有下列字符串: var linkURL = 'http://localhost:8080/String/string_6.html?昵称=小西山子&age=24#id1'; 对于一个真实的URL地址,可以用js来读取location中的相关信息来获得某些信息,下面列举一些: 复制代码 代码如下: location.origin : http://localhost[域] location.pathname : /project_js/Javascript/js_basic

java-webservice通过url传递参数调用接口,参数中含“/”要怎么处理?

问题描述 webservice通过url传递参数调用接口,参数中含"/"要怎么处理? 我现在在做一个调用企业QQ接口来发信息的平台,是通过webservice在url传递参数调用接口.. 但是短信内容中含斜杠时会干扰参数的传递,大神教我怎么解决啊? @GET @Path(""/sendTips/{receivers}/{content}/{windowTitle}/{tipsTitle}/{tipsUrl}"") @Produces ({Medi

android中fragment切换的时候遇到非法参数异常的问题

问题描述 android中fragment切换的时候遇到非法参数异常的问题 FragmentTabHost中加入了两个fragment,片段1和片段2.运行后从片段1到片段2没有出问题,当从片段2再回到片段1的时候出现非法参数异常. 异常代码如图 找到错误主要原因是设置了一个布局的ID: gridview_layout.setId(CAL_LAYOUT_ID); 请问为什么在fragment中设置id切换片段后会发生异常? 解决方案 你这两个页面的id相同 但是页面不是同一种类型的 有冲突

javascript中获取地址url参数

最快捷的js方法 js代码:  代码如下 复制代码 function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r!=null) return unescape(r[2]); return null; } URL的参数&

JS过滤url参数特殊字符的实现方法_javascript技巧

在URL传递参数中,有一些特殊字符,而这些些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码十六进制值 1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL 中指定的参数间的分隔符 %26 8. = URL 中指定参数