请问一下PHP中过滤用户名输入的函数

请叫我王哥 2009-08-16 10:59:04
我想过滤掉,URL中的危险字符以及用户在表单中输入的危险字符
下面是我用的过滤表单输入的函数
本意是过滤用户输入的危险字符和过滤HTML格式
请问,对不

我用这个函数过滤时,用户输入的内容,比如空格类的全没有了,就是没有格式了

请问这是什么原因?

//过滤注射以及HTML字符
function htmldecode($str){
if(empty($str)) return;
if($str=="") return $str;
$str=str_replace("&","&",$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace(" ",chr(32),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace("&",chr(34),$str);
$str=str_replace("'",chr(39),$str);
$str=str_replace("<br />",chr(13),$str);
$str=str_replace("''","'",$str);
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace("modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cas","cast",$str);
return $str;
}
...全文
592 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
CYBEREXP2008 2009-08-20
  • 打赏
  • 举报
回复
<?php
function unhtml($content)
{
$content=htmlspecialchars($content);
$content=str_replace(chr(13),"<br>",$content);
$content=str_replace(chr(32)," ",$content);

return $content;
}
?>
CYBEREXP2008 2009-08-20
  • 打赏
  • 举报
回复
/* 对用户传入的变量进行转义操作。*/
if (!get_magic_quotes_gpc())
{
if (!empty($_GET))
{
$_GET = addslashes_deep($_GET);
}
if (!empty($_POST))
{
$_POST = addslashes_deep($_POST);
}

$_COOKIE = addslashes_deep($_COOKIE);
$_REQUEST = addslashes_deep($_REQUEST);
}
CunningBoy 2009-08-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 byyy521 的回复:]
楼上的能不能说详细点
也好让我明白
难道PHP用了这个函数
就不用过滤了么

比如注入之类的
[/Quote]
PHP有urlencode这个函数。
防止注入的话,用urlencode先过滤一遍,然后在数据库查询时使用bindParam的方式来传递参数(请参看PHP手册),基本上就可以了。
mlsml 2009-08-20
  • 打赏
  • 举报
回复
对于多用户输入多字符过滤可以用
mysql_real_escape_string("用户输入字符串")
请叫我王哥 2009-08-20
  • 打赏
  • 举报
回复
不好意思,7楼8楼的代码还没有写完善就发了出去,之后发现错误
却没办法修改
lypfriends 2009-08-20
  • 打赏
  • 举报
回复
学习
请叫我王哥 2009-08-20
  • 打赏
  • 举报
回复
请问一下,下面这个函数足够安全么?
如果不足够的话,请问怎么修改?

//www.zzcms.com
//过滤POST和GET传递值
function check_str(){
//过滤以GET传递的信息
foreach($_Get as $str_row=>$str){
if(is_numeric($str)){
return intval($str);
}else{
return check_safe_str($str);
}
}
//过滤以POST传递的信息
foreach($_POST as $str_row=>$str){
if(is_numeric($str)){
return intval($str);
}else{
return check_safe_str($str);
}
}
}

//过滤安全字符
function check_safe_str($str){
if (!get_magic_quotes_gpc()) {
return addslashes($str);
}
return $str;
}

请叫我王哥 2009-08-20
  • 打赏
  • 举报
回复
请问一下,下面这个函数足够安全么?
如果不足够的话,请问怎么修改?

//www.zzcms.com
//过滤POST和GET传递值
function check_str(){
//过滤以GET传递的信息
foreach($_Get as $str_row=>$str){
if(is_numeric($str)){
return intval($str);
}else{
return check_safe_str($str);
}
}
//过滤以POST传递的信息
foreach($_POST as $str_row=>$str){
if(is_numeric($str)){
return intval($str);
}else{
return check_safe_str($str);
}
}
}

//过滤安全字符
function check_safe_str($str){
if (!get_magic_quotes_gpc()) {
return addslashes($str);
}
return $str;
}
请叫我王哥 2009-08-19
  • 打赏
  • 举报
回复
楼上的能不能说详细点
也好让我明白
难道PHP用了这个函数
就不用过滤了么

比如注入之类的
CunningBoy 2009-08-16
  • 打赏
  • 举报
回复
用urlencode就可以了,至于"insert"这些有可能是SQL语句的单词可以全部当做字符串来处理。
最新2010-11-20日发上来的,开源团购源码 ,团购网站源码,是商业版的,有安装说明,功能是目前团购网站程序最齐全 的,官方网站 www.cmstuan.com 开源团购后台功能相关说明与升级历史 1、用户界面:支持前台无刷新选择新界面; 2、系统扩展:完美整合UCenter插件,可与其他系统同步注册登录、统一头像; 3、系统扩展:集成GoogleMap,可后台设置、标记商家所在区域; 4、邮件验证:支持验证Email真实性后才可以登录等(后台系统定义设置); 5、邮件通知:支持团购成功时自动Email通知等; 6、邮件通知:支持用户Email订阅、登录取消订阅等; 7、推广营销:支持用户前台获取推荐连接,并邀请好友购买、返现; 8、支付接口:默认集成支付宝和财付通接口;可后台设置,或添加银行转账信息等; 9、团购流程:支持生成唯一订单号(方便沟通)、可切换不同的支付方式; 10、自动开通:满足团购要求时,系统自动开通相关订单、生成优惠券和随机密码; 11、帐户充值:可分批对账户进行充值再开通订单,方便对支付有限额的用户; 12、财务明细:全程记录资金的动作,即使直接开通订单,系统也会自动先充值再扣款; 13、放心消费:用户可在前台我的团购看到每一笔资金信息和相关的备注; 14、消费保障:优惠券的消费需要密码,密码仅用户自己可见; 15、安全消费:即使知道了优惠券和密码,也只有对应的商家才可以消费; 16、合作商家:可前台登陆、查看自己的产品、优化券,并Email提醒用户消费; 17、产品消费:商家登陆后,输入优惠券和对应密码才可以消费(将优惠券变成已消费); 18、在线沟通:前台可在线提问、意见反馈和商务合作; 19、网站优化:可设置开启伪静态,Apache下系统支持自动创建伪静态规则; 20、网站优化:后台可开启Gzip压缩输出内容,加快页面打开速度; 21、网站安全:后台可设置过滤关键词内容,防止用户留言包括违法内容; 22、IP管理 :可禁止指定IP的用户访问网站或者后台; 23、友情链接:支持后台添加文字或者图片友情链接; 24、关于我们:管理员可后台设置关于我们、联系我们、加入我们等信息; 25、互动管理:管理员后台可以回答问题,答复后的问题会在前台显示; 26、城市管理:可任意添加或修改城市、开启或关闭前台显示,可做地图标记; 27、商家管理:可列表查看商家旗下的产品数量、成功订单数和营业总额; 28、商家管理:可通过关键词查找商家,或直接查看某城市下的所有商家; 29、产品管理:添加产品时,支持选择城市自动选择其下商家,减少管理员操作; 30、产品管理:可列表查看团购产品的时间、价格、购买数、团购状态等; 31、产品管理:可一键查看成功团购产品的相关购买人、数量、时间和订单号; 32、订单管理:可列表查看每一订单的价格、购买数量、时间、购买人、支付状态等; 33、订单管理:对未支付的订单,可一键操作对该用户进行Email催款; 34、订单管理:对银行转账的订单,管理员可后台填写相关信息后,手工开通; 35、订单管理:可通过用户名、订单号、支付状态等查询订单; 36、订单管理:团购没达到指定人数,管理员可确认团购失败,并退款给用户; 37、团购券管理:可列表查看优惠券拥有人、到期时间,并发送Email到期提醒; 38、团购券管理:可通过团购券号、到期时间、使用状态等查看团购券; 39、返利管理:可列表查看购买人、时间、登陆IP、所购产品、其邀请人和登陆IP等 ; 40、返利管理:支持后台逐一管理满足返利的订单,并给用户返利到账户; 41、邮件订阅:可设置使用PHP的mail函数还是smtp发送邮件; 42、邮件订阅:可自由添加邮件通知内容,并选择邮件的发送区域; 43、邮件订阅:邮件均保存在发送队列由计划任务控制发送,避免造成服务器堵塞; 44、计划任务:可添加计划任务,并自由设置计划任务的执行时间; 45、站长工具:可开启蜘蛛网页爬行统计,有效掌控搜索引擎对网站的友好性; 46、站长工具:可查看本站的Alexa排名、搜索引擎收录、网站近日收录、交换友情链接; 47、站长工具:可分卷备份数据库、在线打包下载、数据库优化、在线恢复等; 48、用户权限:可任意组合设置用户角色,设置不同权限的管理级别,方便多用户管理; 49、用户管理:可列表查看用户的角色、账号余额和总消费金额等; 50、用户管理:可编辑用户的信息,并查看指定用户的完整消费记录。 2010年9月7日00:01发布 1、增加Google地图功能 2010年9月13日发布 1、修改部分小BUG 2010年10月31日正式

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧