过虑post数据php的简单介绍

请问PHP怎么过滤GET或者POST的参数?防止js注入,或者一些html注入?请请提供代码参考?谢谢!

string mysql_real_escape_string ( string unescaped_string [, resource link_identifier])

成都创新互联公司:2013年至今为各行业开拓出企业自己的“网站建设”服务,为上千公司企业提供了专业的成都网站设计、网站制作、网页设计和网站推广服务, 按需开发网站由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。

本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。

注: mysql_real_escape_string() 并不转义 % 和 _。

例子 1. mysql_real_escape_string() 例子

?php

$item = "Zak's and Derick's Laptop";

$escaped_item = mysql_real_escape_string($item);

printf ("Escaped string: %s\n", $escaped_item);

?

以上例子将产生如下输出:

Escaped string: Zak\'s and Derick\'s Laptop

如何防止代码注入攻击在PHP

一,HTML防注入。

一般的html注入都是在字符串中加入了html标签,用下JAVA代码可以去掉这部分代码。

代码如下,自己封装成方法即可。

String msge = "asdasdasdasd div id=\"f\"asdfsdf";

System.out.println(msge);

msge = msge.replace("", "");

msge = msge.replace("", "");

msge = msge.replace(" ", " ");

msge = msge.replace("", "");

msge = msge.replace("\"", """);

msge = msge.replace("'", "qpos;");

System.out.println(msge);

二、防SQL注入

最简单最容易的是限制用户输入。

简单点的就是不允许用户输入单引号 和 --,因为单引号号--在SQL中都是影响执行的。

但SQL注入是多方面的,防止的方法也有很多种。

1、地址栏禁止特殊字符防SQL注入

把特殊字符(如and、or、'、")都禁止提交就可以防止注入了。

2、php过滤html字符串,防止SQL注入

批量过滤post,get敏感数据

$_GET = stripslashes_array($_GET);

$_POST = stripslashes_array($_POST);

数据过滤函数

function stripslashes_array($array) {

while(list($key,$var) = each($array)) {

if ($key != 'argc' $key != 'argv' (strtoupper($key) != $key || ''.intval($key) == "$key")) {

if (is_string($var)) {

$array[$key] = stripslashes($var);

}

if (is_array($var)) {

$array[$key] = stripslashes_array($var);

}

}

}

return $array;

}

3、替换HTML尾标签

function lib_replace_end_tag($str)

{

if (empty($str)) return false;

$str = htmlspecialchars($str);

$str = str_replace( '/', "", $str);

$str = str_replace("\\", "", $str);

$str = str_replace("", "", $str);

$str = str_replace("", "", $str);

$str = str_replace("SCRIPT", "", $str);

$str = str_replace("/SCRIPT", "", $str);

$str = str_replace("script", "", $str);

$str = str_replace("/script", "", $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);

$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(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("css","'",$str);

$str=str_replace("CSS","'",$str);

return $str;

}

三、专业的事情交给专业的工具去做。

安装安全软件。例如,在服务器中安装“服务器安全狗”,可以设置防注入,防攻击的设置,只要设置好安全规则,就可以屏蔽大多数攻击入侵。

php中,通过$_GET 和 $_POST 取得的数据 安不安全 需要什么过滤函数处理吗

当然需要,$_GET取得的数据是来自URL后的参数,这个是可以自己在地址栏里随便写的,而$_POST的数据来自表单提交,虽然在前端可以设置JS验证数据合法性,但是别有用心的人可以很容易地绕过这个JS验证脚本,所以,在后台接收到这些数据后,首先要做的,就是用过滤或者验证函数进行进一步地处理

如何在PHP中成功的过滤危险HTML的代码

//php 批量过滤post,get敏感数据

if (get_magic_quotes_gpc()) {

$_GET = stripslashes_array($_GET);

$_POST = stripslashes_array($_POST);

}

function stripslashes_array($array) {

while(list($key,$var) = each($array)) {

if ($key != 'argc'  $key != 'argv'  (strtoupper($key) != $key || ''.intval($key) == "$key")) {

if (is_string($var)) {

$array[$key] = stripslashes($var);

}

if (is_array($var))  {

$array[$key] = stripslashes_array($var);

}

}

}

return $array;

}

//--------------------------

// 替换HTML尾标签,为过滤服务

//--------------------------

function lib_replace_end_tag($str)

{

if (empty($str)) return false;

$str = htmlspecialchars($str);

$str = str_replace( '/', "", $str);

$str = str_replace("\\", "", $str);

$str = str_replace("gt", "", $str);

$str = str_replace("lt", "", $str);

$str = str_replace("SCRIPT", "", $str);

$str = str_replace("/SCRIPT", "", $str);

$str = str_replace("script", "", $str);

$str = str_replace("/script", "", $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);

$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(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("css","'",$str);

$str=str_replace("CSS","'",$str);

return $str;

}

PHP如何过滤POST、GET、COOKIE?

首先命药明白POST,GRT,COOKIE,其实它是一个数组。

你可以print_r($_POST)就明白了

所以你一可以写一个方法,

public function a ($_POST){

foreach($_POST as $val) {

/将所有的值过滤掉后赋予一个新的数组

}

return $arr;

}


分享文章:过虑post数据php的简单介绍
网页链接:http://scyanting.com/article/doocdio.html