当前位置:编程学习 > php >>

php 验证客户端输入 防止攻击

求一段 php 验证过滤程序,主要是验证过滤 客户端 的输入信息,防止攻击,主要应用是留言板,验证客户输入 比如说用户输入一些 html 标签 等之类的 全部过滤掉,或者是 其他处理。
追问:首先谢谢你的回答。我想要的是能解决实际问题的回答。
答案:你说的是SQL过滤吧!!

防止SQL注入对吧!!

//===============防SQL注入函数===============================
 function unsqlin() {
  foreach ($_GET as $key => $value) {
   $_GET[$key] = $this->dowith_sql($value);
  }
  foreach ($_POST as $key => $value) {
   $_POST[$key] = $this->dowith_sql($value);
  }

  foreach ($_COOKIE as $key => $value) {
   $_COOKIE[$key] = $this->dowith_sql($value);
  }
 }

 function dowith_sql($str) {
  $str=strtolower($str);
  $str = str_replace("and", "", $str);
  $str = str_replace("or", "", $str);
  $str = str_replace("union", "", $str);
  $str = str_replace("update", "", $str);
  $str = str_replace("count", "", $str);
  $str = str_replace("mid", "", $str);
  $str = str_replace("char", "", $str);
  $str = str_replace("ord", "", $str);
  $str = str_replace("length", "", $str);
  $str = str_replace("left", "", $str);
  $str = str_replace("into", "", $str);
  $str = str_replace("where", "", $str);
  $str = str_replace("select", "", $str);
  $str = str_replace("create", "", $str);
  $str = str_replace("delete", "", $str);
  $str = str_replace("insert", "", $str);
  $str = str_replace("show", "", $str);
  $str = str_replace('\\', '', $str);
  $str = str_replace("'", "", $str);
  $str = str_replace('"', '', $str);
  $str = str_replace(" ", "", $str);
  $str = str_replace("=", "", $str);
  $str = str_replace(">", "", $str);
  $str = str_replace("<", "", $str);
  $str = str_replace(";", "", $str);
  $str = str_replace("%", "", $str);
  return $str;
 }

 

 

使用这个看看~

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。而 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。透过 SSH 可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。SSH 之另一项优点为其传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替 Telnet,又可以为FTP、POP、甚至为 PPP 提供一个安全的“通道”。 最初的 SSH 协议是由芬兰的一家公司开发的,但是因为受版权和加密算法等等的限制,现在很多人都转而使用 OpenSSH。OpenSSH 是SSH的替代软件包,而且是开放源代码和免费的。[编辑] 基本架构SSH协议框架中最主要的部分是三个协议:传输层协议(The Transport Layer Protocol):传输层协议提供服务器认证,数据机密性,信息完整性等的支持。 用户认证协议(The User Authentication Protocol):用户认证协议为服务器提供客户端的身份鉴别。 连接协议(The Connection Protocol):连接协议将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用。 同时还有为许多高层的网络安全应用协议提供扩展的支持。各种高层应用协议可以相对地独立于 SSH 基本体系之外,并依靠这个基本框架,通过连接协议使用 SSH 的安全机制。[编辑] SSH的安全验证在客户端来看,SSH提供两种级别的安全验证。第一种级别(基于密码的安全验证),知道帐号和密码,就可以登录到远程主机,并且所有传输的数据都会被加密。但是,可能会有别的服务器在冒充真正的服务器,无法避免被“中间人”攻击。 第二种级别(基于密匙的安全验证),需要依靠密匙,也就是你必须为自己创建一对密匙,并把公有密匙放在需要访问的服务器上。客户端软件会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的用户根目录下寻找你的公有密匙,然后把它和你发送过来的公有密匙进行比较。如果两个密匙一致,服务器就用公有密匙加密“质询”(challenge)并把它发送给客户端软件。从而避免被“中间人”攻击。 在服务器端,SSH也提供安全验证。 在第一种方案中,主机将自己的公用密钥分发给相关的客户端,客户端在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确定客户端的可靠身份。 在第二种方案中,存在一个密钥认证中心,所有提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户端的主机则只要保存一份认证中心的公开密钥就可以了。在这种模式下,客户端必须访问认证中心然后才能访问服务器主机。[编辑] SSH协议的可扩展能力SSH协议框架中设计了大量可扩展的冗余能力,比如用户自定义算法、客户自定义密钥规则、高层扩展功能性应用协议。这些扩展大多遵循 IANA 的有关规定,特别是在重要的部分,像命名规则和消息编码方面。[编辑] 外部链接SSH Communications Security Corporation的网站 OpenSSH组织的网站 IANA的标准及组织 RFC4251:The Secure Shell (SSH) Protocol Architecture 取自" "
建议你用 fckeditor 编辑器哦 
字典匹配和正则表达式就可以了,关键的是你要屏蔽哪些标签

你说的太笼统了,防止攻击的话,有HTML也没太大关系。

上一个:我想用PHP实现一个功能。
下一个:PHP中使用函数,为什么不能赋值呢? - 技术问答

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,