创建高安全性PHP网站的几个实用要点

news/2024/5/10 12:33:04/文章来源:https://blog.csdn.net/weixin_33705053/article/details/92440725

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

        大家都知道PHP已经是当前最流行的Web应用编程语言了。但是也与其他脚本语言一样,PHP也有几个很危险的安全漏洞。所以在这篇教学文章中,我们将大致看看几个实用的技巧来让你避免一些常见的PHP安全问题。 

技巧1:使用合适的错误报告

  一般在开发过程中,很多程序员总是忘了制作程序错误报告,这是极大的错误,因为恰当的错误报告不仅仅是最好的调试工具,也是极佳的安全漏洞检测工具,这能让你把应用真正上线前尽可能找出你将会遇到的问题。

  当然也有很多方式去启用错误报告。比如在 php.in 配置文件中你可以设置在运行时启用

  启动错误报告

error_reporting(E_ALL);

  停用错误报告

error_reporting(0);

 技巧2:不使用PHP的Weak属性

  有几个PHP的属性是需要被设置为OFF的。一般它们都存在于PHP4里面,而在PHP5中是不推荐使用的。尤其最后在PHP6里面,这些属性都被移除了。

  注册全局变量

  当 register_globals 被设置为ON时,就相当于设置Environment,GET,POST,COOKIE或者Server变量都定义为全局变量。此时你根本不需要去写 $_POST['username']来获取表单变量'username',只需要'$username'就能获取此变量了。

  那么你肯定在想既然设置 register_globals 为 ON 有这么方便的好处,那为什么不要使用呢?因为如果你这样做将会带来很多安全性的问题,而且也可能与局部变量名称相冲突。

  比如先看看下面的代码:

if( !empty( $_POST['username'] ) && $_POST['username'] == ‘test123′ && !empty( $_POST['password'] ) && $_POST['password'] == “pass123″ )
{
$access = true;
}

  如果运行期间, register_globals 被设置为ON,那么用户只需要传输 access=1 在一句查询字符串中就能获取到PHP脚本运行的任何东西了。

  在.htaccess中停用全局变量

php_flag register_globals 0

  在php.ini中停用全局变量

register_globals = Off

  停用类似 magic_quotes_gpc, magic_quotes_runtime, magic_quotes_sybase 这些Magic Quotes

  在.htaccess文件中设置

php_flag magic_quotes_gpc 0
php_flag magic_quotes_runtime 0

  在php.ini中设置

magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off

 技巧3:验证用户输入

  你当然也可以验证用户的输入,首先必须知道你期望用户输入的数据类型。这样就能在浏览器端做好防御用户恶意攻击你的准备。

 技巧4:避免用户进行交叉站点脚本攻击

  在Web应用中,都是简单地接受用户输入表单然后反馈结果。在接受用户输入时,如果允许HTML格式输入将是非常危险的事情,因为这也就允许了JavaScript以不可预料的方式侵入后直接执行。哪怕只要有一个这样漏洞,cookie数据都可能被盗取进而导致用户的账户被盗取。

 技巧5:预防SQL注入攻击

  PHP基本没有提供任何工具来保护你的数据库,所以当你连接数据库时,你可以使用下面这个mysqli_real_escape_string 函数。

$username = mysqli_real_escape_string( $GET['username'] );
mysql_query( “SELECT * FROM tbl_employee WHERE username = ’”.$username.“‘”);

  好了,在这篇简短的文章中,我们阐述了几个开发过程中不能忽视的PHP安全性问题。但是最终是否使用,如何使用还是开发人员来决定的。希望这篇文章能帮助到你们。

 

转载于:https://my.oschina.net/Lonniecode/blog/149577

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_783597.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战J2EE—开发购物网站(一)

前言本文通过实战全程编写一个购物网站来讲解如何使用J2EE来建立企业级的网络应用!本文针对的是像我这样的绝对初学者,如果您是高手就莫要见笑了!一:搭建开发平台本文从实战出发,所以关于一些概念性的问题就不…

实战J2EE—开发购物网站(二)

第三步,安装配置jBuilder 7这里我安装的是weblogic版安装jBuilder不要把它装到带有空格的目录里如Prograih Files,或是中文目录中,不然编译时会出错的。安装很简单,不必多言,这里着重讲一下配置小技巧一:大…

实战J2EE—开发购物网站(三)

二:创建数据库小试牛刀oracle 8i(顺便我们练练手)(为了方便,我就将oracle 8i简写8i了)8i和9i确实有些不一样,不过在界面上区别不大,还是以我的oracle 8i为例为大家讲解一下吧!既然是实战,首先我们为…

部署社交网站

项目案例:部署社交网站前言:本次项目是搭建一套动态网站服务器平台,在上面运行社交网站(例如:人人网,开心网,天涯论坛)。相关知识点在前面的课程中都有所涉及,今天的实验…

Python自动化备份系统及网站

随着目前IT迅猛的发展,自动化运维对于Linux运维人员也越来越重要,传统的运维方式靠大量的人力,现在也逐渐转向自动化运维,我们常见的跟自动化有关的软件有哪些呢。今天我们来简单列举一下:kickistart、puppet、cobbler…

SEO从业五年,软文编写经验总结

从事SEO工作五年,对于很多SEO的技术也有一些自己的经验和想法,在这里想和大家交流一下关于SEO中的主要一块——软文编写的经验和总结。一、最关键:蜘蛛喜欢收录并且有排名蜘蛛喜欢的,用户不一定喜欢;用户喜欢的,蜘蛛一…

php远程获取网站的关键字信息(并附:php判断字符串编码)

php远程获取网站的关键字信息&#xff08;并附&#xff1a;php判断字符串编码&#xff09; 很明显&#xff0c;php100是gbk编码的网站。现在获取它的关键字&#xff0c;并无乱码的显示出来&#xff0c;然后好保存到数据库。 123456789101112131415161718192021<meta http-eq…

百度seo排名点击器app_seo如何快速排名百度首页

seo排名首页是多个要素共同作用的结果&#xff0c;达成seo快速排名首页结果同样需要多个优化要素共同作用&#xff0c;一般而言seo不能快速起效。如果仅仅以快速而言&#xff0c;推荐的方法包括但不限于301永久重定向&#xff0c;快照劫持&#xff0c;模拟用户行为以及短时间增…

网站速度与性能优化要抓主要矛盾解决—瓶颈法

本文主要是思维性的总结&#xff0c;是总结优化的方法学,对方面上面的错误进行总结。不会涉及到前端具体的技术&#xff0c;比如对js和css进行压缩、合并&#xff0c;减少http请求,缓存头控制等等。这些那本《高性能建站指南》都有现成的。 基于本人在多家公司分别遇到的网站速…

搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3

搭建简易Web GIS网站&#xff1a;使用GeoServerPostgreSQLPostGISOpenLayers3 1 服务器搭建 使用Tomcat需要先安装Java。从Oracle官方网站下载Java最新版本&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/index.html 安装完成Java后&#xff0…

对象网站中全局信息的抽象(Web.Config)

几个常用的全局常量 调用Web.config节点的方法 本文转自博客园张占岭&#xff08;仓储大叔&#xff09;的博客&#xff0c;原文链接&#xff1a;对象网站中全局信息的抽象&#xff08;Web.Config&#xff09;&#xff0c;如需转载请自行联系原博主。

seo如何优化文章-知识交流_SEO优化文章如何发布可以实现快速排名

很多人做SEO优化的时候&#xff0c;不知道如何发文章&#xff0c;大家的感觉就是SEO优化很难写&#xff0c;今天知啦娱乐网小编手把手教大家如何发文章&#xff0c;而且是发有用的文章&#xff0c;可以实现搜索引擎快速排名。如果想了解&#xff0c;请继续往下看&#xff1a;SE…

SeaJS 前端模块化开发探索与网站性能优化实践

2019独角兽企业重金招聘Python工程师标准>>> PDF链接&#xff1a;http://pan.baidu.com/s/1CCz4C 转载于:https://my.oschina.net/shawnSongxiaoqiang/blog/361020

网站域名可访问但经过搜索引擎访问不了的解决办法

今天接了个这样的活&#xff0c;这个自己也头一次遇到&#xff0c;把经验分享给大家。网上下载的免费的asp源码&#xff0c;底部写着九牧科技这个公司源码&#xff0c;网站做好了&#xff0c;被百度收录发现不能访问&#xff0c;看着地址也没有错的&#xff0c;有的浏览器提示重…

ASP.NET的SEO: 服务器控件背后——SEO友好的Html和JavaScript

本系列目录 假设你需要从一个页面转向其他页面&#xff0c;下面有很多种方式&#xff0c;你是如何选择的呢&#xff1f;你能清晰的说明理由么&#xff1f; <%--链接的表现形式--%><asp:HyperLink ID"HyperLink1"runat"server"NavigateUrl"…

有什么网站是python做的_自学python有什么网站

Python是未来人工智能最好的编程语言&#xff0c;很多程序员在有其她编程基础的情况选择学习python是比较容易的&#xff0c;当然现在很多想进入编程界的新手选择python开始接触学习编程&#xff0c;但是由于经费有限&#xff0c;只能选择最便宜的学习方式就是自学成才&#xf…

关键词组合工具_网站关键词的定位和布局

每个SEO人员都会有自己的核心关键字定义。百度的核心关键词一直是人们讨论的话题。我们知道&#xff0c;这是一个流量拥挤和匮乏的时代。核心关键字的选择决定了我们对流量的选择以及基于品牌搜索流量的网站定位。那么关键词怎么选呢&#xff1f;选择关键词有七种方法&#xff…

访问量超过100万的电子商务网站技术架构=LVS

本连载首篇介绍到电子商务网站高性能、高可用解决方案。从架构图上的方案&#xff0c;应用的是LVSkeepalived负载均衡。实现高性能、高可用解决方案 (服务器组成集群&#xff0c;达到负载均衡&#xff0c;高性能、高可用、高可伸缩性的服务器集群)互联网->LVS负载均衡(前端四…

中head函数_wordpress插件,怎样向网站添加数据?试试wp_head()函数

有时候&#xff0c;我们会碰到这样一种情况&#xff1a;我们的wordpress网站主题模板已经定型了&#xff0c;但是&#xff0c;我们后期又想向wordpress网站添加一些新功能&#xff0c;这时候&#xff0c;我们该怎么办&#xff1f;是继续修改wordpress网站主题模板吗&#xff1f…

网站建设就要像2018世界杯的俄罗斯队大杀四方[图]

2019独角兽企业重金招聘Python工程师标准>>> 今天心情不错&#xff0c;因为昨天晚上观看了世界杯比赛&#xff0c;尤其是对俄罗斯队的大杀四方感到十分霸气侧漏啊&#xff0c;因此我联想到了自己的博客网站&#xff0c;我的博客是去年年底上线的&#xff0c;一直想建…