thinkphp项目结构
目录结构 https://www.kancloud.cn/manual/thinkphp5/118008 安装后可以看到下面的目录结构 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859www WEB部署目录(fleastrTest)├─application 应用目录│ ├─common 公共模块目录(可以更改)│ ├─module_name 模块目录│ │ ├─common.php 模块函数文件│ │ ├─controller 控制器目录│ │ ├─model 模型目录│ │ ├─view 视图目录│ │ ├─config 配置目录│ │ └─ … 更多类库目录│ ││ ├─command.php 命令行定义文件│ ├─common.php 公共函数文件│ └─tags.php 应用行为扩展定义文件│├─config 应用配置目录│ ├─module_name 模块配置目录│ │ ├─database.php...
php-htaccess
简介 .htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。 概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。 .htaccess 详解 .htaccess是什么 启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config...
JSON-Web-Token
1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 2. 什么时候你应该用JSON Web Tokens 下列场景中使用JSON Web Token是很有用的: Authorization (授权) : 这是使用JWT的最常见场景。一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是现在广泛使用的JWT的一个特性,因为它的开销很小,并且可以轻松地跨域使用。 Information Exchange (信息交换) : 对于安全的在各方之间传输信息而言,JSON Web Tokens无疑是一种很好的方式。因为JWTs可以被签名,例如,用公钥/私钥对,你可以确定发送人就是它们所说的那个人。另外,由于签名是使用头和有效负载计算的,您还可以验证内容没有被篡改。 3. JSON Web Token的结构是什么样的 JSON Web...
python多线程
123456789101112131415161718192021222324252627282930313233343536from concurrent.futures import ThreadPoolExecutorimport timeimport requestsr=requests.session()def requestUrl(url): response = requests.get(url) #下载页面 if "lv6.png" in response.text: print(response.url) return response## 回调函数#def done(future,*args,**kwargs):# response = future.result() #取得future对象进行操作# if "lv6.png" in response.text:# print(response.url)#def main(): ...
phar文件无法生成
来到/etc/php/对应的版本/cli/目录下修改php.ini,设置phar.readonly =Off 还有etc/php/apache2/目录下
python字符串转化
12345678910111213141516def str_to_hex(s): return ' '.join([hex(ord(c)).replace('0x', '') for c in s])def hex_to_str(s): return ''.join([chr(i) for i in [int(b, 16) for b in s.split(' ')]]) def str_to_bin(s): return ' '.join([bin(ord(c)).replace('0b', '') for c in s]) def bin_to_str(s): return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]]) ...
Hexo博客增加algolia搜索功能
准备工作 首先你要有一个 Hexo 博客,我配置时的版本是 Hexo v3.9.0 和 NexT.Pisces v7.6.0。 第一步、新建 Algolia 账号 我直接 Github 登录的,然而还是非得填完手机号地址公司名之类的不可,一路 next 到让你建立 index 才算注册完成。 第二步、新建 index 取名 取什么随便,但要记住这个名字,后面要用。 第三步、新建一个 API Key 重点来了 那个什么「Search-Only API Key」,忘了它吧。我们直接新建一个 API Key。 新建API Key 右上角「New API Key」,然后设置,除了第一行是描述,其他行都是「空着不填 = 无限制」,直接看最后一行。 修改访问控制列表 这个 Key 就是你的「API Key」。 也就是 Hexo 的 _config.yml 里填的 apiKey,一会设置的环境变量 HEXO_ALGOLIA_INDEXING_KEY,都是它。 第四步、配置 Hexo 编辑 Hexo 的配置文件 _config.yml,新增 123456algolia: ...
Python代码对象code-object与__code__属性
0x01概念 代码对象 code object 是一段可执行的 Python 代码在 CPython 中的内部表示。 可执行的 Python 代码包括: 函数 模块 类 生成器表达式 当你运行一段代码时,它被解析并编译成代码对象,随后被 CPython 虚拟机执行。 代码对象包含一系列直接操作虚拟机内部状态的指令。 这跟你在用 C 语言编程时是类似的,你写出人类可读的文本,然后用编译器转换成二进制形式,二进制代码(C 的机器码或者是 Python 的字节码)被 CPU(对于 C 语言来说)或者 CPython 虚拟机虚拟的 CPU 直接执行。 代码对象除了包含 指令,还提供了虚拟机运行代码所需要的一些 额外信息。 0x02探索 以下的内容是在 Python 3.7 中实验的,而且主要是针对于函数来讲。至于模块和类虽然也是通过代码对象实现的(实际上,.pyc 文件里面就存放着序列化的模块代码对象),但是代码对象的大多数特性主要和函数相关。 关于版本需要注意两点: 在 Python 2 中,函数的代码对象通过 函数.func_code 来访问;而 Python 3...
Python-Opcode及利用Opcode绕过python沙箱
0x01 OpCode opcode又称为操作码,是将python源代码进行编译之后的结果,python虚拟机无法直接执行human-readable的源代码,因此python编译器第一步先将源代码进行编译,以此得到opcode。例如在执行python程序时一般会先生成一个pyc文件,pyc文件就是编译后的结果,其中含有opcode序列。 如何查看一个函数的OpCode? 12345def a(): if 1 == 2: print("flag{****}")print "Opcode of a():",a.__code__.co_code.encode('hex') 通过此方法我们可以得到a函数的OpCode co_code string of raw compiled bytecode Opcode of a(): 6401006402006b020072140064030047486e000064000053 我们可以通过dis库获得相应的解析结果。 123import...
高校战疫2020
Web sqlchenkin 1234567891011121314 <?php // ... $pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8;', 'root', ''); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); $stmt = $pdo->prepare("SELECT username from user where username='${_POST['username']}' and password='${_POST['password']}'"); $stmt->execute(); $result =...


