四时宝库

程序员的知识宝库

技术分享:从开发角度浅谈CSRF攻击及防御

什么是CSRF

CSRF可以叫做(跨站请求伪造),咱们可以这样子理解CSRF,攻击者可以利用你的身份你的名义去发送(请求)一段恶意的请求,从而导致可以利用你的账号(名义)去--购买商品、发邮件,恶意的去消耗账户资源,导致的一些列恶意行为.CSRF可以简单分为Get型和Post型两种。

excel导出合并单元格(excel导入合并单元格)

站点名字一样的需要合并在一起,样式图如下


1.先数据填充 后修改样式

$sheet->rows($data1);

php 利用redis分布式锁秒杀解决超卖问题

后续还有优化,目前只有大体思路

public function miaosha(){

$uid=uniqid(); //模仿用户id 随机数代替
#redis 连接
$redis =new \Redis();
$redis->connect('127.0.0.1',6379);
try{
    do{
        $list =[];
        $key='test_key';
        $value =uniqid();
        $numkey ='storeid'.'11111';  //商品的Key 用来存商品数量
        $redis->watch($numkey);  //监听商品数量
      #一个用户只能购买一个
        if($redis->hget('www',$uid)){
            return ['msg'=>'不能重复'];
        }
      //加锁
            $is_lock = $redis->set($key,$value,['nx','ex'=>'10']);
            if($is_lock){
                $arr[$key] =$value; //记录当前获取锁的用户
                $stock = $redis->get($numkey); 
                if($stock<=0){//商品数量为0秒杀结束,删除锁
                    if($redis->get($key)==$arr[$key]){
                        $redis->del($key);
                    }
                    return ['msg'=>'结束'];
                }
              #开启事务
                $redis->multi();
                $redis->decr($numkey);
              $redis->hSet('www',$uid,'11111');
                $redis->lPush('list',$uid);
                $redis->exec();
                #提交事务解锁
                if($redis->get($key)==$arr[$key]){
                    $redis->del($key);
                }
                break;
            }else{
              //没有获取锁睡眠重试
                usleep(5000);
            }

        }while(!is_lock);
    return $redis->lLen('list');
    }catch (\Exception $e){
        $redis->discard();//redis 回滚
        return $e->getMessage();

    }

MQTT基础-连接demo与连接报文分析

大家好,我是yangyang.接着给大家带来mqtt基础知识第三篇:使用php连接mqtt

php-mqtt/client

获取远程链接图片并保存到本地指定目录下

使用php实现下载远程图片到本地指定目录下



/**
 * 获取文件的后缀名
 * @param $filename
 * @return false|string
 */
function getFileExtName($filename)
{
    $ext = strrchr($filename,'.');
    return $ext;
}

/**
 * 
 * 下载远程图片或文件到本地
 * @param $url
 * @param string $path
 * @return string
 */
function downloadImage($url, $path='images/')
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    $file = curl_exec($ch);
    curl_close($ch);
    return saveAsImage($url, $file, $path);
}

function saveAsImage($url, $file, $path)
{
    $extName = getFileExtName($url);
    //生成唯一的图片名称
    $filename = uniqid().$extName;
    $resource = fopen($path . $filename, 'a');
    fwrite($resource, $file);
    fclose($resource);
    return $filename;
}

什么是 UUID 和在 WordPress 中如何使用

今天简单介绍一下 UUID 和在 WordPress 中的使用:

php 文件流提交 没有使用圈a形式(php文件运行显示无法显示页面)

//图片url地址

$pic_url = "http://img.adbox.sina.com.cn/pic/1505759360-1398150715642.jpg";

$api_url = "http://upload.admin.mp.sina.com.cn/mpimg/index.php?show_type=json";

安全开发之 token 那些事(安卓开发工具)

晚风 合天智汇

在开发网络应用时,不管是移动端的 APP 也好,还是 web 端 APP 也好,只要有用户群体存在,都绕不开身份认证这个话题,选择一种好的身份认证方法常常在应用安全中起到了至关重要的作用。目前用的最多的就是使用“token”认证用户的身份。

本文主要讲述了你不知道的关于 token 的那些事,以及在目前常见的应用中增加 token 认证的方案。

对 Hyperf 做的那些事 2(统一入出口)

作为一个 PHPer 一直思考 PHP 怎么做高性能(个人基础比较弱),怎么微服务,之前真不知道,不是概念而是怎么落地,谈概念有用但是不落地有点扯

Swoole 没有实际项目用过,swoole 相关框架也没了解过也不知道,获取知道了可能对于之前的问题就可能有一些答案了

Hyperf 的出现简直就是太及时了,文档清晰,框架灵活等等等,简直不要太好

假如有100W个用户抢一张票,除了负载均衡办法,怎么支持高并发?


面试被问到了这个问题,找了答案,记录一下

场景:多个用户抢一张票

假如有100W个用户,抢一张票,除了负载均衡的办法,怎么支持高并发?

<< < 2 3 4 5 6 7 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接