网络编程

当前位置:永利402游戏网站-永利402com官方网站 > 网络编程 > 有关PHP开辟的9条提出_php能力_脚本之家

有关PHP开辟的9条提出_php能力_脚本之家

来源:http://www.xtcsyb.com 作者:永利402游戏网站-永利402com官方网站 时间:2019-11-25 15:04

正文只是私人商品房从实际支付资历中总括的生机勃勃对事物,并非怎样名言警句,写出来有七个指标:一是随即提示自己要遵纪守法这几个知识点来写自身代码,二是为着分享,有可能对你有用吧?万大器晚成,是吧。。。

复制代码 代码如下:

1.尤为重要意识:安全

<?PHP
//PHP整站防注入程序,需求在集体文件中require_once本文件
//判断magic_quotes_gpc状态
if (@get_magic_quotes_gpc ()) {
$_GET = sec ( $_GET );
$_POST = sec ( $_POST );
$_COOKIE = sec ( $_COOKIE );
$_FILES = sec ( $_FILES );
}
$_SERVER = sec ( $_SERVER );
function sec(&$array) {
//如若是数组,遍历数组,递归调用
if (is_array ( $array )) {
foreach ( $array as $k => $v ) {
$array [$k] = sec ( $v );
}
} else if (is_string ( $array )) {
//使用addslashes函数来拍卖
$array = addslashes ( $array );
} else if (is_numeric ( $array )) {
$array = intval ( $array );
}
return $array;
}
//整型过滤函数
function num_check($id) {
if (! $id) {
die ( '参数不可能为空!' );
} //是还是不是为空的推断
else if (inject_check ( $id )) {
die ( '违规参数' );
} //注入剖断
else if (! is_numetic ( $id )) {
die ( '违法参数' );
}
//数字剖断
$id = intval ( $id );
//整型化
return $id;
}
//字符过滤函数
function str_check($str) {
if (inject_check ( $str )) {
die ( '非法参数' );
}
//注入推断
$str = htmlspecialchars ( $str );
//转换html
return $str;
}
function search_check($str) {
$str = str_replace ( "_", "_", $str );
//把"_"过滤掉
$str = str_replace ( "%", "%", $str );
//把"%"过滤掉
$str = htmlspecialchars ( $str );
//转换html
return $str;
}
//表单过滤函数
function post_check($str, $min, $max) {
if (isset ( $min ) && strlen ( $str ) < $min) {
die ( '最少$min字节' );
} else if (isset ( $max ) && strlen ( $str ) > $max) {
die ( '最多$max字节' );
}
return stripslashes_array ( $str );
}
//防注入函数
function inject_check($sql_str) {
return eregi ( 'select|inert|update|delete|'|/*|*|../|./|UNION|into|load_file|outfile', $sql_str );
// www.jb51.net 实行过滤,防注入
}
function stripslashes_array(&$array) {
if (is_array ( $array )) {
foreach ( $array as $k => $v ) {
$array [$k] = stripslashes_array ( $v );
}
} else if (is_string ( $array )) {
$array = stripslashes ( $array );
}
return $array;
}
?>

大许多时候,大家开辟的Web程序都以急需跟数据库打交道的,所以这里大约可以说SQL注入是二个怎么也回天无力制止要拿出来探究一下的难题。並且近日像XSS和CS奥迪Q5F攻击也变得大行其道,使得"红客"们平时又有了大器晚成把把利器,而大家总是处在力倦神疲的情事。不过大家要记得是上边那七个尺码:

您大概感兴趣的文章:

  • PHP中幸免SQL注入实现代码
  • PHP+MySQL 手工业注入语句大全 推荐
  • PHP防注入安全代码
  • discuz的php防止sql注入函数
  • php+mysql注入页面实现
  • 重新整建php防注入和XSS攻击通用过滤
  • Php中用PDO查询Mysql来制止SQL注入危害的格局
  • php中sql注入漏洞示例 sql注入漏洞修复
  • php中addslashes函数与sql防注入
  • php中$_GET与$_POST过滤sql注入的主意
  • php使用exec shell命令注入的章程批注
  • PHP针对伪静态的注入计算【附asp与Python相关代码】
  1. 永世不要相信客商输入的东西。2. 将团结索要输出的数量进行转义。

归纳的话正是:filter input , escape output

倘使您是新手,不要再选择雷同以下的查询语句了:

SELECT FROM users WHERE username = $_POST['username'] AND password = $_POST['password'];

再有就是,使用PDO或Mysqli吧,不要再使用老式的mysql操作了。

而对于,CS奔驰G级F的消除方案,近年来触及的都以给每叁次的表单提交都安装二个token值,然后在表单提交的时候校验之就能够。

2.显明地精通各种比较操作符的歧异

PHP的可比操作符,这实际上能够说是四个超小的注意点,不过在少数时候确实很关键。比方说非常多时候大家得思忖清楚,该用==依然===,要是您利用过strpos()这几个函数,上面包车型客车代码或然会给你一个直观的体会:

上面这段代码的运行结果其实是输出Chris is not an author,但是现实情况是,Chris & Sean真的是Author啊,怎么回这样呢?其实是这样的:Chris正好出现在Chris & Sean首位开始处,也就是0这个位置,所以substr()返回了,由于条件判断语句中bool判断,所以0作为了false处理,于是程序输出了Chris is not an author,但是在这种情况之下我们该怎么处理呢?我们其实可以这样的:这里的!==和!=的不同就体现出来了。3.可以减少使用else就少使用else这个貌似从我一开始接触编程就有的一个想法,因为每次看到if(){}else{}就有一种这一段其实可以写得更好的感觉,因为一旦你减少了使用else关键字,你得代码会减少两行!没错,两行也是我们的追求,而且,从我的经验看,else少的代码貌似可读性更高,对我来说。if{$x = 5;}else{$x = 10;

只要,在$x的私下认可值是10,照旧上面这样写感到比较好:

$x = 10;if{$x = 5;}

4.去掉不必要的括号

此处的目标其实跟else关键字部分是千篇风流浪漫律的,大家是为了更简便的代码和更卓越的可读性,对以下的情况,你都应有酌量优化代码:

if ($gollum == 'halfling') {$height --;}

if ($gollum == 'halfling') $height --;

if ($gollum == 'halfling') $height --;else $height ++; if echo 'Gosh darnit, roll again Sauron';foreach echo 'Legolas strikes again, that makes' . $count . 'for me!';

是或不是有风姿洒脱种又短又清晰的以为?

5.多用str_replace()

在超级多时候我们要求对部分字符串实行替换,在PHP中有以下几个函数能够完成这些指标:

str_replacepreg_replace()

借让你实乃要求使用正则相配,那就应用preg_replace(),而黄金时代旦在可完成替换的状态下,请使用str_replace(),因为据不完全总括,str_replace()的频率在这里三当中等是最高的。

6.应用安慕希运算符

这么些可能过多少人都有其生机勃勃体会,使用伊利运算符之后,大家能够去掉一群if else语句了,代码又短又爽。

$host = strlen > 0 ? $host : htmlentities;

7.使用缓存

近期PHP火热的缓存手艺也许就是Redis和Memcached了,在PHP的官方文书档案中,也是有Memcached的利用教程,至于Redis,笔者近来在钻探中,后续会提交一些科目,假使一切顺遂的话。

8.应用框架

框架的平价多多,或然是在品质方面具备损失外,貌似找不到不用框架的理由了,框架即能够加快你的花费进度,也能够令你在写代码的经过中撸的舒舒服服,况且想多数平安难点,你都会赢得很好的缓和。笔者这里首要推荐Laravel,不过像Yii2 Slim Symfony皆以充裕棒的框架,除了Symfony未有尝过过之外,剩下的八个本身都有选拔资历,最后就着力是用Laravel了。可是本人提出的Laravel只怕不切合您,那依旧得看个人喜好。

9.用isset

比如你需求在类型代码中须求依照三个字符串的长度来做标准判定,那时特别推荐你一向动用isset的进程是strlen()的五倍左右,所以:

= 6) { // The username is at least six characters long.}

以上的三个原则推断都是可以直达同等的指标,但是作者引入应用的是首先种。

上述所述就是本文的全体内容了,希望大家能够喜欢

本文由永利402游戏网站-永利402com官方网站发布于网络编程,转载请注明出处:有关PHP开辟的9条提出_php能力_脚本之家

关键词: