Php配置文件中设置register_globals为off,关闭全局变量注册 控制错误信息,不要在浏览器上输出错误信息,将错误信息写到日志文件中。 23.PHP网站的主要攻击方式有哪些?...26、 简述在MySQL数据库中MyISAM和InnoDB的区别 区别于其他数据库的最重要的特点就是其插件式的表存储引擎。切记:存储引擎是基于表的,而不是数据库。...在使用 Ajax 时,涉及到数据传输,即将数据从服务器返回到客户端,服务器端和客户端分别使用不同的脚步语言来处理数据,这就需要一种通用的数据格式,XML 和 json 就是最常用的两种,而 json 比...要同时修改数据库中两个不同表时,如果它们不是一个事务的话,当第一个表修改完,可能第二个表修改过程中出现了异常而没能修改,此时就只有第二个表依旧是未修改之前的状态,而第一个表已经被修改完毕。...而当你把它们设定为一个事务的时候,当第一个表修改完,第二表修改出现异常而没能修改,第一个表和第二个表都要回到未修改的状态,这就是所谓的事务回滚。
挽回PV(pageview),同时尽量让用户对网站的不安感减少。 四、告诉搜索引擎此链接失效,不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除。 ... 注意: 1.切记不要将404错误转向到网站主页,否则可能会导致主页在搜索引擎中消失 2.切记不要使用绝对URL(例如:http://www.yumaoseo.com/notfound.php...最后,我们对404错误页面还需要更深一层的了解: 首先,404错误应工作在服务器级而不是网页级。 其次,必须确保在PHP执行前服务器已经顺利地送出“404”状态码。 ...再之,如果404页面返回的是200或302状态码而不是404状态码。...对于普通用户,是没有很大区别,当搜索引擎得到“200”状态码时,则会认为该url是有效的,便会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容
,大小不同:GET是放在URL首部,因此大小随着浏览器而定,而POST则是在报文中,只要没有具体限制,文件的大小是没限制的 然后,安全性不同:GET采用的是明文传输,而POST是放在报文内部,无法看到...从使用场景的角度来说,一般像用户注册登录这种信息都是私密的,采用POST,而针对查询等,为了快速,大多采用GET传输。...(6)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描 (7)应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描...常见的HTTP状态码: 200 - 请求成功 301 - 资源(网页等)被永久转义到其他URL 404 - 请求的资源(网页等)不存在 505 - 内部服务器错误 HTTP状态码分类: 1** - 信息...,服务器在处理请求的过程 中发生了错误 git和svn的区别 GIT是分布式的,SVN不是 GIT把内容按元数据方式存储,而SVN是按文件 GIT分支和SVN的分支不同 GIT没有一个全局的版本号,而SVN
例如初始化数据库的时候会用到,比如MySQL,MSSQL 策略模式: 针对一组算法,将每一个算法封装到具有共同接口的独立的类中,例如进入个人主页时,根据浏览者的不同,给予不同的显示与操作 注册模式:...*.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。...*.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节. .Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get...$users ||= ‘john’; 语法错误。 90.以下哪一个函式可以把浏览器转向到另一个页面? redir()这不是一个 PHP 函式,会引致执行错误。...redirect()这不是一个 PHP 函式,会引致执行错误。 91.PHP中的非静态方法可以通过静态调用吗,反之呢?
所以回到我们讨论的问题,最小权限问题,这里在需求上完全不需要读权限,但是因为读权限的开启,照成了严重的损失,所以,能不给的权限不要给,给过的权限,一定要做好过滤等防御措施。...gpc过滤还是不完整的,比如php5中$_SERVER变量不会过滤,如果程序中,把client-ip,referer存到数据库中就能引发sql注入。...2.magic_quotes_runtime是对文件或者数据库中取出的数据过滤,能很好的解决二次注入漏洞。...cgi而沦陷,所以没有这个需求最好不要开启。...总结:首先我们都清楚安全不是绝对的,不是仅仅配置了这些文件就能保证你的程序绝对安全。
3、对进入数据的特殊字符(‘ “ \ & *)进行转义处理(或编码转换) 4、不要直接拼接SQL语句,所有的查询语句建议使用数据库提供的参数化查询接口,使用参数化的语句而不是将用户输入的变量嵌入SQL...4、敏感的操作应该使用POST,而不是GET,以form表单的形式提交,可以避免token泄露。...应对方案: 1、增强验证码机制,为防止验证码被破解,可以适当怎加验证码生成的强度,例如中文图形验证码。 2、用户名或密码输入错误均提示“用户名或密码错误”,防止黑客获取到注册用户的信息。...应对方案: 1、如果使用邮件验证的方式找回密码,重置密码令牌需要设置为不可猜测,且加密令牌时使用通过加密的方式,而不是自己构造;设置重置密码会话过期时间,在重置密码时不要从请求中获取需要重置的用户名。...应对方案: 1、不应从用户请求或填写的内容中获取跳转的目标URL,应在后端设定跳转URL。 2、对需要跳转的目标URL进行验证,如果跳转的URL不是所允许的,则禁止跳转。
可是我们高估了mysql 的智能,他不是商务数据库,事实证明定长和非定长对limit影响不大? 怪不得有人说 discuz到了100万条记录就会很慢,我相信这是真的,这个和数据库设计有关!...一张表搞定100万记录,并且10G 数据库,如何快速分页! 好了,我们的测试又回到 collect表,开始测试结论是: 30万数据,用分表法可行,超过30万他的速度会慢道你无法忍受!...mygod ,mysql 的索引竟然对于in语句同样有效!看来网上说in无法用索引是错误的!...,将分页清空,这样只需要用一次数据库连接,不需要再开; $db->execute(“select id,title,url,sTime,gTime,vtype,tag from collect where...php echo $rs['url'];?> <?php echo $rs['gTime'];?
为了高效,一般会采取分类维护多个表的方式,而不是把所有数据都储存在同一个表中。 MySQL 需要服务器支持。...从表单获取信息 概述 这一部分我们演示如何构建一个表单,使用户填写这个表单并把内容储存到数据库。这一技术是用户注册系统和用户互动的基础。 要实现这个功能,需要 HTML 和 PHP 配合完成。...PHP的错误处理 分级的错误信息 最后来讲一下 PHP 的错误处理机制。如果你写了有错误的 PHP 代码,那么运行的时候系统会自动生成一些错误提示信息并且打印到屏幕上,以提醒用户修复。...在写 PHP 程序的时候,我们需要这些错误提示来帮助我们改正错误,但是当产品发布的时候,开发人员往往倾向于隐藏错误提示:用户收到这些信息是很让人恼火的,而且,让他人知道你的代码有什么漏洞总归不是一个好主意...例如,要建立一个用户数据库,为每个用户分配一个唯一 ID,则可以把数据库中的 ID 字段设为 AUTO INCREMENT,这样每次不用手工维护这个字段,只要新增一行,这个字段的数值就增 1(默认从 1
> (2)写一个方法获取url中的文件类型 如$url = 'http://www.qq.com/test.php?a=......5.对缓存的了解 php缓存技术详细介绍及php缓存的实现代码 二、数据库知识 1.数据库的基本增删查改 基本的增删改查语句,关联语句,函数等过一遍 2.谈谈数据库优化的方法 (1)创建表的时候避免使用...(3)字符集的转换:客户端或者应用程序使用的字符集可能和数据库使用的字符集不一致,需要在mysql运行过程中隐含转化 (4)创建索引,如果一张表很大然后符合条件的值很多,那么创建索引就能带来性能的提升...(8)尽量满足范式(有的情况下要用反范式)下面是三大范式的区别,也要去看一下 第一范式:数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。...这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错 eg. 500: 请求未完成。服务器遇到不可预知的情况。
简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。...一般来说,DNS区域传送操作只在网络里真的有后备域名DNS服务器时才有必要执行,但许多DNS服务器却被错误地配置成只要有人发出请求,就会向对方提供一个zone数据库的拷贝。...详细了解,传送门,感觉这位大神写的蛮清楚的,可以参考下 服务指纹识别 很多站点,可能没有自定义错误信息。因此在url上随便输入一个不存在的地址,可能会返回有用的信息。...Banner抓取 banner抓取是应用程序指纹识别而不是操作系统指纹识别。Banner信息并不是操作系统本身的行为,是由应用程序自动返回的,比如apathe、exchange。...简单用法 wafw00f URL 从图中可以看到该网站处于Waf保护状态 搜索引擎 Google搜索技术融合了用于执行Google的详细搜索的高级搜索技术。
: 判断是否执行正常或者遍历数据 第八步: 关闭数据库 案例:用户注册 一、 判断重复密码 二、 准备好写入的数据 **可见数据有:** **不可见数据有:** 三、连接数据库、判断错误、选择库和字符集...为大家举一些例子: 要注册一个用户,是将表单的数据POST发送给PHP写入数据库 购买一个商品,是将商品信息和用户信息通过PHP写入到数据库 在线付费,是将用户的充值信息通过PHP写入数据库 修改头像上传的头像地址得到后...从网页、移动端、QQ微信公众号都在使用PHP连接数据库进行操作。 为了更方便大家的学习,我们将连接数据库的知识进行了步骤化。你会发现,你很轻松的就学会了PHP连接数据库的知识。...注意: *从PHP7开始默认不再支持mysql扩展,即不再支持mysql_系列函数。请使用mysqli连接数据库。 mysqli即支持php5也支持php7。...按照人的思维人们一般喜欢看最新注册的一批用户。而ID自增,也就是ID在越大,就是时间注册越新的用户。因此我们在写SQL语句的时写上的是order by id desc。
八、会员注册、修改、删除、评论等一切需要操作数据库的地方记得加单引号之类查看是否存在insert、update等类型注入。...十、通常有下载功能的站我们可以尝试修改下URL文件名,看能否下载站点敏感文件,如数据库配置文件等,数据库不可外连情况下可以尝试数据库密码登陆后台,也可下载上传、登陆验证等文件进行代码审计。...搜索方法; Whois查询,通过Whois数据库查询可以得到以下的信息: 1,注册机构:显示相关的注册信息和相关的Whois服务器; 2,机构本身:显示与某个特定机构相关的所有信息;...原因是: 1,他们都是可选项,不是所有主机都可以实现的; 2,如果你所发送的包中对某个选项进行了设置,只要目标支持,那么目标主机就返 回此选项; 3,可以在包中设置所有的选项进行测试。...rid总是500,而GUEST用户的rid总是501;而新建立的帐户的rid从1000 开始。
2.更改配置文件 进入应用根目录(不是网页根目录),找到config.php文件。...主要改3个地方: 数据库信息:账号密码要对,数据库名可以随便写一个 注册信息:将invite改为normal(即将注册功能改为正常) URL:改为http:// 虚拟机 ip 地址 / 应用根目录...5.修改域名 进入数据库,将http://xsser.me换成自己的域名(即之前在config.php里修改的url的值) ?...config.php里修改的url) 选择注册 ?...然后提交注册 8.提权 回到虚拟机,进入数据库,找到oc_user表,将刚刚创建的账号的adminlevel改为1,即设置管理员权限。 ? 9.测试 创建一个新项目,名称、描述随便填。
Error # 1.web脚本错误,如php语法错误,lua语法错误等. # 2.访问量大的时候,由于系统资源限制,而不能打开过多的文件...2.nginx配置文件错误 这里不是指语法错误,nginx如果配置文件有语法错误,启动的时候就会提示。...有可能是数据库问题我的在nginx日志php日志都没有发现什么问题, 最后发现数据库访问不了,修正后问题解决。 502 # 502 Bad Geteway。...Nginx 502错误的原因⽐较多,主要是因为在代理模式下后端服务器出现问题引起的。这些错误⼀般都不是Nginx本身的问题,⼀定要从后端找原因。...php-fpm已经执行,但是由于某种原因没有执行完毕,最终导致php-fpm进程终止,错误原因比较多,一般不是Nginx本身,从后端找原因,比如PHP挂掉; 对于PHP,造成502原因常见的就是脚本执行时间超过了
, ]; 在 PHP 文件中指定自定义信息 在大多数情况下,您可能会在文件中指定自定义信息,而不是直接将它们传递给 Validator 。...日期值将传递到 PHP 函数 strtotime : 'start_date' => 'required|date|after:tomorrow' 您可以指定另一个要与日期进行比较的字段,而不是传递要由...当验证某个字段的时候,你应该 只使用 date 或者 date_format ,而不是同时使用。此验证规则支持 PHP 所有的 DateTime 类。...您可以传递整个模型实例,而不是将模型实例的主键值 传递给 ignore 方法。...消息应该被放到数组的第一位, 而不是在只用于存放属性指定错误信息的 custom 数组内: "foo" => "Your input was invalid!"
PHP版本的问题遇到了很多的代码兼容、语法错误等等一系列的问题。...> 大括号访问数组和字符串索引 使用大括号访问数组及字符串索引的方式已被废弃。请使用 $var[$idx] 的语法来替代 $var{$idx}。...parent 关键词在没父类的类中使用 在没有父类的类中使用 parent 关键词已被废弃,并且在将来的 PHP 版本中将会抛出一个编译错误。目前只在运行时访问父类时才会产生错误。...COM 导入类型库的大小写不敏感的常量注册已被废弃。...比如我们开发环境使用PHP7.0版本,而生成环境中是PHP7.4版本,在实际过程中就会因为版本问题导致出现各种意想不到的错误。
、GET、PUT、DELETE,与其比不可少的URL的全称是资源描述符,我们可以这样理解:url描述了一个网络上资源,而post、get、put、delegate就是对这个资源进行增、删、改、查的操作!...3.1表单中get和post提交方式的区别 get是把参数数据队列加到提交表单的action属性所指的url中,值和表单内各个字段一一对应,从url中可以看到;post是通过HTTPPOST机制,将表单内各个字段与其内容防止在...,var_dump和print_r是函数 * echo 输出一个或多个字符串,中间以逗号隔开,没有返回值是语言结构而不是真正的函数,因此不能作为表达式的一部分使用 * print也是php的一个关键字,...,请求包含语法错误或者无法完成请求 5** 服务器错误,服务器在处理请求的过程 中发生了错误 8、什么是魔术引号 魔术引号是一个将自动将进入PHP脚本的数据进行转义的过程,最好在编码时不要转义而在运行时根据需要而转义...是致命的,而include不是 require_once表示了只包含一次,避免了重复包含 15、谈谈mvc的认识 由模型、视图、控制器完成的应用程序,由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图
使用连接(join)来代替子查询 使用联合(union)来代替手动创建的临时表 4、所得皆必须,只从数据库取必须的数据。...2、在PHP配置文件中 Register_globals=off;设置为关闭状态 //作用将注册全局变量关闭。...因此开启:magic_quotes_gpc=on; 8、控制错误信息 关闭错误提示信息,将错误信息写到系统日志。 9、使用mysqli或pdo预处理。 四、数据库索引有几类,分别是什么?...什么时候该用索引 普通索引、主键索引、唯一索引 并非所有的数据库都以相同的方式使用索引,作为通用规则,只有当经常查询列中的数据时才需要在表上创建索引。 五、数组中下标最好是什么类型的,为什么?...八、你对Memcach的理解,优点有哪些? Memcache是一种缓存技术,在一定的时间内将动态网页经过解析之后保存到文件,下次访问时动态网页就直接调用这个文件,而不必在重新访问数据库。
而表单数据可能需要经过一定加工(例如将密码加密)才能写入数据表,所以可以对数据对象的成员属性值根据进行修改或添加去除等。...$data = $docs->create(); dump($data); dump($_POST); 结果:$data只会记录和数据库字段对应的数据,非数据库字段自动忽略。...create方法创建的数据对象是保存在内存中的,并没有实际的写入到数据库中。...$user->add(); 3、create方法支持从其它方式创建数据对象,如,从其它的数据对象或者数组等。...所以 D方法 配合 create() 是非常智能而强大的,恰当运用可以达到事半功倍快速开发的目的。
领取专属 10元无门槛券
手把手带您无忧上云