每天5分钟,细读PHP手册-14

用户提交的数据
  • 必须时常留意你的代码,以确保每一个从客户端提交的变量都经过适当的检查,然后问自己以下一些问题:
    • 此脚本是否只能影响所预期的文件?
    • 非正常的数据被提交后能否产生作用?
    • 此脚本能用于计划外的用途吗?
    • 此脚本能否和其它脚本结合起来做坏事?
    • 是否所有的事务都被充分记录了?
魔术引号指令
  • magic_quotes_gpc:对GET、POST、COOKIE生效;
  • magic_quotes_runtime:对大部分从外部获取的数据生效;
  • magic_quotes_sybase:覆盖magic_quotes_gpc,会使用单引号对单引号进行转义,而双引号、反斜线 和 NULL 字符将不会进行转义;
  • 没有理由再使用魔术引号,因为它不再是 PHP 支持的一部分。 不过它帮助了新手在不知不觉中写出了更好(更安全)的代码;
HTTP认证
  • 分为basic和digest认证两种,basic是账户密码的明文传输认证,digest摘要认证不包含密码,包含认证信息的摘要信息;
文件上传
  • 要确保文件上传表单的属性是 enctype=“multipart/form-data”;
  • 注意 PHP 也支持 PUT 方法的文件上传;
  • max_execution_time 仅仅只影响脚本本身运行的时间。任何其它花费在脚本运行之外的时间,诸如用函数 system() 对系统的调用、sleep() 函数的使用、数据库查询、文件上传等,在计算脚本运行的最大时间时都不包括在内
  • max_input_time 以秒为单位设定了脚本接收输入的最大时间,包括文件上传。对于较大或多个文件,或者用户的网速较慢时,可能会超过默认的 60 秒;
使用远程文件
  • 只要在 php.ini 文件中激活了 allow_url_fopen 选项,就可以在大多数需要用文件名作为参数的函数中使用 HTTP 和 FTP 的 URL 来代替文件名;
连接状态
  • 0:正常状态;1:用户退出;2:超时退出;
  • 用户超时退出可以使用ignore_user_abort来忽略;
  • 有时候让脚本执行完成或许是更好的选择;
  • 3=1+2,同时设置了忽略用户退出;
数据库持久连接
  • 实际上,从严格意义上来讲,持久连接不会提供任何非持久连接无法提供的特殊功能;
  • 持久连接的好处在于提升效率;
  • 不管在什么情况下,都可以通过使用register_shutdown_function()函数来注册一个简单的清理函数来打开数据表锁,或者回滚事务。或者更好的处理方法,是不在使用数据表锁或者事务处理的脚本中使用持久连接,这可以从根本上解决这个问题;
  • 持久连接与常规的非持久连接应该是可以互相替换的。即将持久连接替换为非持久连接时,你的脚本的行为不应该发生改变。使用持久连接只应该改变脚本的效率,不应该改变其行为;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值