phpurl参数过滤
1. php原生写法怎么隐藏地址栏url的某些参数值
你所看到的BBS它并不能做到让它的 url地址 不发生变化,不信你可以对着一个链接点右键,再点那个在新窗口打开。
怎么样,网址变化了吧。为什么点击的时候地址栏里面的网址没有发生变化呢,原因不用多说,他的网页都在一个框架里面,只要框架(frame)的url没有在点击的时候发生变化,则地址栏中的url就不会有变化。
如果你想和那个论坛的做法一样,很简单,请参照以下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>框架页面</title>
</head>
<frameset cols="80,*" frameborder="no" border="0" framespacing="0">
<frame src="left.htm" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
<frame src="right.htm" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>
这里框架代码,然后将 left.htm 换成你左边列表的网址。
然后将 right.htm 换成你右边内容的网址。
以上这段框架代码的文件为 index.htm
请访问 index.htm 查看效果。
2. php 怎样过滤 ,地址栏指定参数
substr(0,strpos('&',$url),$url)
就是截取
3. php 纯数字url参数安全过滤代码
标准答案我就不知道了,只是我个人的理解大概是这个方面要注意:
1 [POST/GET]页面参数传值/字符串输入/数据入库等类似动作都要做好严格的危险字符过滤处理.
2 相关PHP的I/O操作,需要注意限制权限,文件名或目录名或内容都要做好过滤处理.
3 敏感信息(如PASSWORD/银行帐号等)不要依赖COOKIE,SESSION,最好读表,并尽量缓存读表数据.
4 注意对网站根目录及下面所有子目录及文件的权限控制与保护,不要让配置文件/系统信息等文件暴露.
5 要完全屏掉所有出错提示,或者能捕获所有出错并重新定制输出,以防报错信息泄露你的网站及相关文件路径,MYSQL字段/网站环境等.
6 所有对库表的写入与读取操作都需要做好访问来路限制/同IP同内容读写间隔限制/并验证POST与GET的指定标识KEY的有效性等这些安全动作.
7 有类似文件下载/或文本流下载等功能的,尽量不要在URL里面直接调用目标文件地址的方式来做,最好是传ID或是指定的NAME标识.
8 MYSQL 的用户最好分开,不要用ROOT用户来连接MYSQL,另建专用用户,并限制死此用户的权限,只能操作指定的库,最好去掉此用户的命令行导入导出的权限等这些危险的权限.
4. php 商城属性筛选功能url构造
按照属性组进行构造,前面参数为属性组名后面的参数为属性组属性。譬如:price=1,price为属性,1为属性具体的属性,可以是具体的也可以是模糊的,URL构造可以使用&或者是用/都可以。
5. PHP中有必要过滤URL传递过来的参数吗 - PHP进阶讨论
很多注入式攻击就是通过简单的url传递过来的,一般的原则是不要相信任何用户的输入
6. php如何提取url中参数中的url里面的参数
你应该说的是用GET方法传送表单吧。这里的参数可以用PHP提供的数组GET[ ],来解决。例如:要提取这个jb_id,可以先声明个变量:$jb_id=$_GET['jb_id']; 注意这里的变量名并不唯一。格式是:$变量名=$_GET[参数名];
你这个例子可写一下代码:
$jb_id=$_GET['jb_id'];
$id=$_GET['id'];
$sj=$_GET['sj'];
执行后, $jb_id值就是:11111 ,$id值就是:99999,$sj值就是:hsdbd
然后像处理一般变量那么处理。
不知道你明白不?其实你也可以用POST方式传递参数,用法跟GET完全相同,只是表单中的方式要改为:POST
7. php利用框架隐藏URL上的参数,具体怎么做
设置权限不就得了?
比如必须登录才能查看
或者
某一类用户登录才能查看等等!
或者你比如的用户id=1的用户登录之后,你在登录处理页面把这个用户的id写入到session啊
比如: $_SESSION['id']=1;
然后你在修改资料页面,sql语句查询就这样
$Sql='select*from表名称whereid='.$_SESSION['id'];
这样,就避免了get传参的危险啊!
url中get参数是可以改的,就算你隐藏了也没有用,别人照样可以拼写url进行操作啊
无论你怎么隐藏法,你接受这个参数还不是得$_GET不是?
况且,要达到你这个运行方式,那只能对服务器进行做文章,比如url重定向
就是把 index.php?id=1变成 index/1/这种格式,但他还不是有个1?,别人就不能改为2?
当然,也可以直接把inedx.php定向到index.php?id=1,但问题是,你这样等于把参数定死了,那谁登陆都是id=1
所以,你要index.php能直接指向多个参数,那你用url传参显然是不可能的!
而$_SESSION是存储在服务端的,除非你写代码去改变,否则客户端用户是无法去更改的!
8. php 正则替换url参数 比如页数p=x 如何实现
echo$url='?s=view&p=5';
echo'<br>';
$p=6;
echopreg_replace('/p=([d]+)/','p='.$p,$url);
echo'<br>';
echopreg_replace('/([d]+)/',$p,$url);
另外 为什么
echo preg_replace('/^p=.*$/', $p, $url);
有问题
/^p=.*$/ 匹配的是以p开头以任意字符结尾的字符串,而?s=view&p=5 很明显不是以p开头的,所以匹配失败,返回原字符串 $url;
9. php url参数加密
用这个加密:base64_encode ( string $data )
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>
用这个解密:base64_decode ( string $data [, bool $strict= false ] )
<?php
$str = '==';
echo base64_decode($str);
?>
10. php 怎么过滤后url后面的缀名
$_GET['id']='sdfsf.5.jpg';
$new_str= strrev($str);
$new_str1=substr($new_str,strpos($new_str, ".")+1);
echo strrev($new_str1)