xss

xss

如果提交的表单数据中包含 HTML 或 JavaScript,会导致严重的问题。 如果用户输入在评论中输入This page<b>rules!!!</b> ,而且应用一字不差地将其显示出来,那么浏览这个页面时看到的 rules!!! 就是粗体。Web 浏览器不会区分应用自身提供的 HTML 标签(例如显示评论的表格或列表)和内嵌在评论中的 HTML 标签。 虽然显示粗体的文本没什么问题,但是如果不过滤用户输入话,应用就会遇到更大的麻烦。如果用户输入 <a href=

yii2

yii2-cache

Yii 2.0 支持全部范围的缓存选项,从服务器端缓存,如果段缓存,查询缓存到客户端的HTTP缓存。他们对各种缓存驱动程序,包括APC,Memcache的,文件,数据库等都支持。 Yii 支持一系列缓存存储器,概况如下: yii\caching\ApcCache:使用 PHP APC 扩展。 这个选项可以认为是集中式应用程序环境中 (例如:单一服务器,没有独立的负载均衡器等)最快的缓存方案。 yii\caching\DbCache:使用一个数据库的表存储缓存数据。要使用这个缓存, 你必须创建一个与

yii2

yii2-rbac

RBAC 缓存 如果您正在使用数据库来存储 RBAC 数据,你会发现它的执行并不理想,因为每个访问检查将涉及许多 SQL 语句的执行。为了提高性能,yii\rbac\DbManager 现在实现了缓存机制。它存储在缓存中的整个 RBAC 层次结构中从而大大提高了 checkAccess() 的性能。默认情况下,RBAC 缓存未启用。您可以通过在应用程序配置中启用 yii\rbac\DbManager,如下: return [ 'components' => [ 'authManager' => [ 'class'

php

php-mysql

Persistent connections != connection pooling Connection pooling in PHP There is no connection pooling in php. Q: 为什么 PHP 一直在优化程序执行效率,而不优化数据库连接? A: 至于像java之类那样「真正意义上的连接池」技术,在PHP上是根本不可行的。 PHP就是被设计成每次运行完以后销毁一切状态,任何数据都不会带到下一个执行环境上去的。 所以不可能内置一个全功能的「连接池」,而只能从第三方扩展里实现。 如果你需要全功能连接池技术,那你就不能用PHP而需要用常驻内存型的语言,比如Java,

cookie

cookie

HttpOnly 属性的 cookie 不能被 js 获取到,无法用 document.cookie 打出cookie的内容。 Secure 属性是说如果一个cookie 被设置了 Secure=true,那么这个cookie只能用https协议发送给服务器,用http协议是不发送的。 在开发环境中,记得在服务器端把 Secure 设置为 false,否则每次请求都不会附带 SessionId 到服务器,服务器就会为每个请求都重新生成一个 SessionID。 再次请求时,就会附带上 PHPSESSID: 服务端根据 PHPSESSID 的值,

io

io

相关文章: PHP并发IO编程之路 普通的 PHP 网站应用都是 I/O 密集型,瓶颈在 MySQL 上,体现不出 PHP 性能上的不足。在 CPU 密集计算方面,PHP 比 C、C++、Java 的差距就很明显。 以下这段话是朋友转发的某位大神的总结: 什么是显著执行时间?该如何计算? 取决于您应用程序以及所期望达到的并发数 假设您只有一个Eventloop,希望能够处理1万个Http请求/s,那么很明显,每 一个请求的处理时长不能超过1/

php

php-fpm

配置文件:/etc/php-fpm.d/www.conf pm.max_children = 100: 这个值原则上是越大越好,php-cgi 的进程多了就会处理的很快,排队的请求就会很少。 设置”max_children”也需要根据服务器的性能进行设定 一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右 假设“max_children”设置成100个,20M*100=2000M 也就是说在峰值的时候所有PHP-CGI所耗内存在2000M以内。 假设“max_children”设置的较小,比如5-10个,那么php-cgi就会“

db

mysql-schema

范式与反范式 在范式化的数据库中,每个事实数据会出现且只出现一次。相反,在反范式化的数据库中,信息是冗余的,可能会存储在多个地方。 范式别名 —— 零冗余存储。 反范式别名 —— 冗余存储。 范式的优点和缺点 优点: 更新快。 修改数据简单。 更小,更好地放在内存里,操作快。 缺点:范式化的 schema 的缺点是通常需要关联。稍微复杂一点的查询语句在符合范式化的 schema 上都可能需要至少一次关联,也许更多。这不但代价昂贵,也可能使一些索引策略无效。例如,范式化可能将列存放在不同的表中,而这些列如果在一个表中本可以属于同一个索引。 反范式的有点和缺点 反范式化的

concurrency

并发 PHP 解决并发问题的几种实现 对于商品抢购、秒杀等并发场景下,可能会出现超卖的现象,这时就需要解决在高并发请求下容易产生两个问题: 数据出错,导致产品超卖; 频繁操作数据库,导致性能下降; 如果库存大于0,则库存减少1,同时生产订单,录入抢购者数据。 // 常规代码处理高并发 public function actionNormal(){ // 查询库存 $stock = Goods::find()->select('stock')->where(['goods_id'=>