laravel单点登录-多个子域名站点

2018-06-23 11:02:11

单点登录     单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。  在laravel中实现这一功能非常简单。  首先要知道‘浏览器同源策略’原理: Cookie 是服务器写入浏览器的一小段信息,只有同源的网页才能共享。但是,两个网页一级域名相同,只是二级域名不同,浏览器允许通过设置document.domain共享 Cookie。 于是我们可以把session存在cookie里,然后多个子域名服务使用同样的域,就可以实现共享登录(SSO)。SESSION_DRIVER=cookie SESSION_DOMAIN=baidu.com

阅读全文

Referrer Policy 介绍

2018-04-20 16:37:05

        当用户在浏览器上点击一个链接时,会产生一个 HTTP 请求,用于获取新的页面内容,而在该请求的报头中,会包含一个 Referrer,用以指定该请求是从哪个页面跳转页来的,常被用于分析用户来源等信息。但是也有成为用户的一个不安全因素,比如有些网站直接将 sessionid 或是 token 放在地址栏里传递的,会原样不动地当作 Referrer 报头的内容传递给第三方网站。        所以就有了 Referrer Policy,用于过滤 Referrer 报头内容,目前是一个候选标准,不过已经有部分浏览器支持该标准。具体的可查看这里。指令值目前包含了以下几种指令值:enum Refer...

阅读全文

异常实时报警

2018-04-17 18:09:48

当线上服务出现异常时,有时候问题很难察觉,需要自己测试,甚至要等用户反馈问题才知道。于是想到能不能线上代码出现问题实时通知给相关负责人?比如:即时通讯工具(微信/QQ)或者邮箱。 答案是肯定的,在laravel中实现起来就很简单。(此方法仅针对业务代码出现异常,或者遭到攻击服务不能正常运行的异常) laravel中所有异常都由 App\Exceptions\Handler 类处理https://d.laravel-china.org/docs/5.4/errors#the-exception-handler 因此,我们只要捕获项目中所有异常并实时通知就简单多了。 本文测试发送163邮箱 先写好发送邮件内容格式,然后在 App\Exceptions\Handler 的 report 里...

阅读全文

php密码加密与验证

2018-04-17 17:53:34

password_hash是crypt()的一个简单封装,并且完全与现有的密码哈希兼容,使用了一个强的哈希算法,来产生足够强的盐值,并且会自动进行合适的轮次。 password_hash会生成60个字符,随时间推移,默认算法可能会有变化,因此需要数据库里储存结果的列可超过60个字符(最好是255个字符)前面7位字符代表hash的相关信息(密码算法类型和密码算法常量),可用password_get_info获取,后面53位为随机字符串。在生成散列(hash)值时,会自动创建安全的随机盐值。(在php5.5至php7.0时可以手动指定盐值,不过强烈建议不要自己为这个函数生成盐值(salt),因为php7.0以后就废除了)生成的hash会返回:使用的算法、cost 和盐值,所以验证散列值的所...

阅读全文

php扩展missing处理

2018-04-17 15:58:08

碰到一个问题: 在phpinfo里能看到mbstring和其他扩展已经安装, 但是使用composer update时却提示:mbstring missing 使用php -m也没有看到mbstring扩展  再三思考和排除法测算后,最后锁定两种可能:1.系统有安装多个php版本,配置不一样;2.php的运行模式不一样,如:php-fpm,cli 使用whereis php查看排除第一种可能然后使用:/usr/local/php/bin/php composer update可以正常安装依赖包,sudo cp -rf /usr/local/php/bin/php /usr/bin/php 主要原因是:两种不同的运行模式加载的php.ini不同 关于php的运行模式:CLI、FastCGI、mod_php参考相关资料:PHP 的命令行模式(cli)FastCgi与PHP-fpm之间是个什么样的关系P...

阅读全文

微信图文素材防盗链问题

2018-04-17 10:23:44

在开发微信第三方平台管理时,发现获取微信公众号所有素材时,却无法在浏览器正常显示,图片提示:“此图片来自微信公众平台未经允许不可引用”原来微信图片素材做了防盗链。不过可以在html的head里添加:<meta name="referrer" content="never">这样当前页面中发起的请求就不会携带 referer信息,从而绕过referer检测  更多关于Referer Meta标签的描述如下:转载《使用Referer Meta标签控制referer》本文描述了一个关于 http 协议中 referer 的 metadata 参数的提议,使用这个 metadata 参数,html 文档可以控制 http 请求中的 referer ,比如是否发送 referer、只发送 hostname 还是发送完整的 referer 等。虽然有一些方法可以控...

阅读全文

git常见命令大全

2018-01-31 12:00:00

查看日志 git log 获取从2017-09-11到2017-09-22更新的文件,作者是jesse,时间格式化为2017-09-20,只显示备注 git log --author=jesse --since="2017-09-11" --before="2017-09-22" --no-merges --name-status --date=short --pretty="%ad - %s" 根据备注查询以"上传"开头的的所有字符,支持正则匹配 git log --grep '^求职大赛' --author=jesse --no-merges --name-status --date=short --pretty="%ad - %s" git 创建仓库,初始化 git init 提交代码到仓库 查看文件修改状态: git status git add . git commit -m '备注' git push 撤销未提交的修改 git checkout /var/www/test/index.html /*恢复到上一次提交时的状态,注意:这种方...

阅读全文

关于PDO防御sql注入

2017-12-04 14:57:00

不要对已经被 magic_quotes_gpc或者htmlspecialchars 转义过的字符串使用 addslashes(),因为这样会导致双层转义,或会引起其他问题。 如果使用的是PDO,最好不要使用addslashes来达到sql的防注入目的,因为PDO本身就可以防御sql注入。PDO有一项参数:(参考官方手册)PDO::ATTR_EMULATE_PREPARES 启用或禁用预处理语句的模拟。 有些驱动不支持或有限度地支持本地预处理。使用此设置强制PDO总是模拟预处理语句(如果为 TRUE ),或试着使用本地预处理语句(如果为 FALSE)。如果驱动不能成功预处理当前查询,它将总是回到模拟预处理语句上。 需要 bool 类型。 有网友做过测试: 传送门使用模拟预处理语句(PDO::ATTR_EMULATE_PREPARES = true), php会...

阅读全文

PHP 身份证号码验证

2017-12-01 16:47:32

身份证号码的结构: 要进行身份证号码的验证,首先要了解身份证号码的编码规则。我国身份证号码多由若干位数字或者数字与字母混合组成。早期身份证由15位数字构成,这主要是在1980年以前发放的身份证,后来考虑到千年虫问题, 因为15位的身份证号码只能为1900年1月1日到1999年12月31日出生的人编号,所以又增加了18位身份证号码编号规则。1>.18位身份证号码各位的含义: 1-2位省、自治区、直辖市代码;3-4位地级市、盟、自治州代码;5-6位县、县级市、区代码;7-14位出生年月日,比如19820426代表1982年4月26日;15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数;18位为校验码,0-9和X。2>.15位身份证号码各位的含义: ...

阅读全文

记一次apache错误异常处理

2017-11-07 15:01:00

服务器apache错误日志出现许多类似下面的问题:script not found or unable to stat: /var/www/cgi-bin/test-cgi script not found or unable to stat: /var/www/cgi-bin/test.sh script not found or unable to stat: /var/www/cgi-bin/test-cgi.pl发现httpd.conf中有部分这样配置: # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the target directory are treated as applications and # run by the server when requested rather than as documents sent to the # client. The same rules about tra...

阅读全文

composer install 与 update区别

2017-09-30 11:20:43

## composer install 如果当前目录下存在composer.lock文件,它会从此文件读取依赖版本; 如果不存在,则从 composer.json 文件去获取依赖,并在处理完依赖关系后创建 composer.lock 文件。 这确保了该库的每个使用者都能得到相同的依赖版本。 ## composer update 通过 composer.json 文件去获取更新依赖,更新完成后,会更新 composer.lock 文件 为了获取依赖的最新版本,并且升级 composer.lock 文件,你应该使用 update 命令。 ## 如果你只是想更新几个包,你可以像这样分别列出它们: ```shell composer update vendor/package1 vendor/package2 ``` 你还可以使用通配符进行批量更新: ```shell composer update vendor/* ``` 区...

阅读全文

浏览器兼容性问题解决方案

2017-09-04 16:19:00

普及:浏览器的兼容性问题,往往是个别浏览器(没错,就是那个与众不同的浏览器)对于一些标准的定义不一致导致的。俗话说:没有IE就没有伤害。 贴士:内容都是自己总结的,不免会出现错误或者bug,欢迎更正和补充,本帖也会不断更新。 Normalize.css 不同浏览器的默认样式存在差异,可以使用 Normalize.css 抹平这些差异。当然,你也可以定制属于自己业务的 reset.css <link href="https://cdn.bootcss.com/normalize/7.0.0/normalize.min.css" rel="stylesheet"> 简单粗暴法 * { margin: 0; padding: 0; } html5shiv.js 解决 ie9 以下浏览器对 html5 新增标签不识别的问题。 <!--[if lt IE 9]> <script type="text/javascript...

阅读全文

网站优化 - 雅虎34条军规

2017-08-31 17:23:09

 雅虎给出了优化网站加载速度的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文(来自帕兰映像)。 1.Minimize HTTP Requests 减少HTTP请求图片、css、script、flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间。把多个JS、CSS在可能的情况下写进一个文件,页面里直接写入图片也是不好的做法,应该写进CSS里,利用 CSS sprites 将小图拼合后利用background来定位。 2.Use a Content Delivery Network 利用CDN技术CDN 确实是好东西,8过服务器提供商的这项服务一般是要收费的,我以前买的国内空间是有这个的但是我当时根本不知道啥用,现在没了。。。 3.Add an Expires or a Cache-C...

阅读全文

php多次自动加载冲突或导致后面加载无效

2017-08-18 16:27:00

使用spl_autoload_register自动加载类时,如果存在2个或多次spl_autoload_register时,当第一次自动载入(require_once文件时),如果文件不存在就抛出异常或者终止时,后面的自动加载(spl_autoload_register)就会失效。 php手册上也有类似说明。 例如:function genericAutoload($class) { if (!require_once($class . '.php')) { throw new Exception("Can't require_once!"); } else { return true; } } function secondaryAutoload($class) { require_once('library/' . $class . '.php'); } spl_autoload_register('genericAutoload'); spl_autoload_register('secondaryAutoload');解决方法有两...

阅读全文

营业执照号正则验证

2017-08-18 15:03:00

市面上现在有2中企业营业执照注册号(统一社会信用代码),一种是15位(从2007年开始),一种是18位(从2015年开始)。 先科普下: 三证合一2015年10月1日起,全国开始推行“三证合一,一照一码”登记模式,即将“营业执照、组织机构代码证、税务登记证”三证合为一证,提高市场准入效率。“一照一码”则是在此基础上更进一步,通过“一口受理、并联审批、信息共享、结果互认”,实现由一个部门核发加载统一社会信用代码的营业执照[2]  。 五证合一在企业和农民专业合作社(以下统称“企业”)“三证合一、一照一码”的基础上,2016年10月1日起,全国开始全面实行“五证合一、一照一码”。即将“营业执照、组织机构代码证、税务登记证、社会保险登...

阅读全文