- 目录遍历文件包含测试
蚂蚁质量
安全测试安全web安全网络
众多Web应用程序在日常运作中,都离不开对文件的使用与管理。然而,一旦应用程序所采用的输入验证方法设计欠佳或部署不当,攻击者便有机可乘,利用这类漏洞对系统发起攻击,进而读取或写入那些本不应被随意访问的文件。在某些极端情形下,攻击者甚至能够借助此漏洞执行任意代码或系统命令。传统意义上,Web服务器与Web应用程序通常会部署身份验证机制,以此来管控对文件及资源的访问权限。Web服务器会尽力将用户可访问
- 家居行业全渠道零售技术解决方案架构指南
cstech_deep
零售架构科技产品运营
家居行业全渠道零售技术解决方案架构指南行业数字化转型挑战体验断层线上渠道商品认知度不足,退货率高达35-42%物流成本高企大件商品平均物流成本占比达18%,破损率超行业标准2.3倍决策周期长客户平均决策周期达12.7天,需构建全链路交互体系核心系统技术实现一、沉浸式体验引擎3D场景化展示WebGL模型轻量化处理defoptimize_model(obj_file):apply_decimation
- sql深入学习
lally.
sql学习数据库
文章目录前言知识学习注释的两种形式字符型注入万能密码布尔盲注报错注入堆叠注入时间盲注二次注入小技巧前言这次学习建立在对数据库有基本的认识,了解基础的增删改查语句,数字型注入和字符型注入的基础上,进一步深入学习知识,并进行实战训练知识学习注释的两种形式#号,url编码用%23替代--空格字符型注入注入字符被引号包裹,需要采取一定的策略绕过,包括or截断,前面引号后面注释等//eq:拼接sql语句查找
- Python Cookbook-2.19 根据指定的搜索路径和模式寻找文件
我不会编程555
#Python学习python前端linux
任务给定一个搜索路径(一个描述目录信息的字符串),需要在此目录中找出所有符合匹配模式的文件。解决方案基本上,需要循环路径中的所有目录。这个循环最好被封装成一个生成器:importglob,osdefall_files(pattern,search_path,pathsep=os.pathsep):'''给定搜索路径,找出所有满足匹配条件的文件'''forpathinsearch_path.spli
- Webpack构建兼容IE8
IE8中运行webpack打包后的程序会出现各种问题,请注意,真的会有各种问题,所以尽可能不要在IE8上运行webpack,连淘宝都不支持IE8了,为什么我们还要兼容它呢?毕竟是十年前的东西了。但是,如果产品经理非要兼容IE8,或者目标用户就是那些用IE8的群体(暴露年龄的东西),讲道理还是可以解决的,只是要多费些脑细胞。首先要知道IE8不怎么兼容es5特性,所以要加入es5的compatibil
- 终极指南:styled-components 深度解析与实战对比
ox0080
#北漂+滴滴出行WebVIP激励styled-comCSS
一、CSS-in-JS革命:现代Web样式新范式1.1传统CSS的三大痛点全局污染:class命名冲突导致"样式战争"状态隔离:动态样式需要操作DOM类名架构割裂:样式文件与组件逻辑分离//传统CSS的典型问题实例//Button.css.btn{background:blue;}//全局作用域//App.css.btn{padding:10px;}//意外覆盖1.2CSS-in-JS的核心优势真
- Axios:高效处理HTTP请求的利器
winxinxian
http网络协议网络
Axios:高效处理HTTP请求的利器在现代Web开发中,处理HTTP请求是一项基础且至关重要的任务。Axios,作为一个基于Promise的HTTP客户端,因其简洁的API设计、强大的功能和跨平台兼容性(支持浏览器和Node.js环境),成为了众多开发者的首选工具。本文将详细介绍Axios的基本用法、高级功能以及在实际开发中的应用。一、Axios简介Axios是一个基于Promise的网络请求库
- org.apache.commons.jar包官方免费版(附下载地址)
王的博客
开发
官方免费下载链接:http://commons.apache.org/proper/commons-io/download_io.cgi亲测可用,如上所示。
- Python+requests+pytest+allure自动化测试框架
测试1998
软件测试自动化测试测试工具测试用例pythonpytest职场和发展
点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快1、核心库requestsrequest请求openpyxlexcel文件操作loggin日志smtplib发送邮件configparserunittest.mockmock服务2、目录结构baseutilstestDatasconftestCasestestReportlogs其他2.1basebase_path.py存放绝对路径,do
- 全渠道小程序引流指南
爱分享的程序员
微信小程序小程序
一、微信生态内部渠道1.会话场景1.1好友会话点击查看商品详情onShareAppMessage(){return{title:'爆款特惠',path:'/pages/goods?id=123',imageUrl:'/images/share.jpg'}}1.2微信群//获取群ID实现群场景服务wx.getGroupEnterInfo({success(res){console.log('群ID:
- 【Spring MVC】基本原理和工作流程
cangloe
javaspringmvcjava
SpringMVC是SpringFramework提供的一个基于Model-View-Controller(MVC)模式的Web框架。它用于构建灵活且可扩展的Web应用程序。SpringMVC将应用程序的业务逻辑、用户界面和导航逻辑分开,从而简化开发过程,提高代码的可维护性和可测试性。以下是对SpringMVC的基本原理和工作流程的详细讲解。SpringMVC基本原理1.MVC架构Model(模型
- 攻防世界web新手第四题easyphp
安全小王子
前端android
6000000&&strlen($a)2022){if(is_array(@$c["n"])&&count($c["n"])==2&&is_array($c["n"][0])){$d=array_search("DGGJ",$c["n"]);$d===false?die("no..."):NULL;foreach($c["n"]as$key=>$val){$val==="DGGJ"?die("no
- Spring MVC的工作流程
ItKevin爱java
javawebjavajavaSpringMVC
SpringMVC的工作流程是一个典型的MVC(Model-View-Controller)架构在Web开发中的应用。下面将详细描述SpringMVC的工作流程:一、用户发起请求用户请求:用户通过浏览器向服务器发送HTTP请求,这个请求首先被SpringMVC的前端控制器(DispatcherServlet)拦截。二、DispatcherServlet处理请求请求转发:DispatcherServ
- 攻防世界-web- easyphp
32进制
ctfweb攻防世界CTFphp开发语言
#攻防世界-web-easyphp依次构造a、b、c的值!";break;}$i++;}//$c=array("m",2022,array("n","DGGJ","DGGJ"));//echojson_encode($c);//$c=json_encode($c);//shic={"m":"12345a","n":[[0,1,2],0]}$c=array("m",2022,array("n","D
- Spring MVC流程
zhujilisa
Springspring
SpringMVC启动流程启动流程父子容器请求处理MultipartFile解析参数传递返回值处理HandlerInterceptor启动流程启动Tomcat解析web.xml创建DispatcherServlet调用DIspatcherServlet的init方法4.1创建Spring容器4.2发布ContextRefresheEvent4.3在OnRefreshed方法中触发initStrat
- 【PlatformIO】基于Arduino的ESP8266 网站部署
水手勇敢
esp8266嵌入式硬件c语言vscode
文章目录概要代码展示串口信息打开网站视频演示概要将制作的网站上传到ESP8266的Flash中,然后通过网址进行打开1、创建esp8266工程,2、添加ESPAsyncWebServer等库函数3、打开串口监听4、编写代码,主要包括:wifi部分、fs文件、服务器打开文件5、上传网站6、调试上传程序代码展示#include#include#include#include#includeAsyncW
- python网络爬虫——爬取新发地农产品数据
张謹礧
python网络爬虫python爬虫开发语言
这段代码是一个爬取新发地蔬菜价格信息的程序,它使用了多线程来加快数据获取和解析的速度。具体的步骤如下:导入所需的库:json、requests、threading和pandas。初始化一些变量,包括页数、商品总列表以及存放json数据的列表。定义了一个函数url_parse(),用于发送请求并解析网页数据。函数使用requests.post()方法发送POST请求,获取商品信息,并将其保存到jso
- python数据分析之爬虫基础:爬虫介绍以及urllib详解
web13765607643
python数据分析爬虫
前言在数据分析中,爬虫有着很大作用,可以自动爬取网页中提取的大量的数据,比如从电商网站手机商品信息,为市场分析提供数据基础。也可以补充数据集、检测动态变化等一系列作用。可以说在数据分析中有着相当大的作用!页面结构介绍这里主要介绍HTML的一些简单结构,需要一点前端的知识,可以根据情况直接跳过。Title姓名年龄性别张三18男铁锅炖大鹅小鸡炖蘑菇锅包肉奖励自己睡觉起床读书学习爬虫相关概念1、爬虫的概
- 人事管理系统设计与实现
AI天才研究院
DeepSeekR1&大数据AI人工智能大模型AI大模型企业级应用开发实战计算计算科学神经计算深度学习神经网络大数据人工智能大型语言模型AIAGILLMJavaPython架构设计AgentRPA
人事管理系统设计与实现1.背景介绍在现代企业管理中,人力资源管理是一个非常重要的环节。传统的人事管理方式效率低下,无法满足企业快速发展的需求。因此,开发一套功能完善、高效实用的人事管理系统就显得尤为重要。本文将详细介绍一个基于Web的人事管理系统的设计与实现过程,该系统采用B/S架构,后端使用Java语言,前端采用Vue.js框架。系统主要包括员工信息管理、招聘管理、考勤管理、薪酬管理、绩效考核等
- 【Golang】Go语言Web开发之模板渲染
景天科技苑
Go语言开发零基础到高阶实战golang前端开发语言Go语言模板渲染模板渲染golang模板渲染
✨✨欢迎大家来到景天科技苑✨✨养成好习惯,先赞后看哦~作者简介:景天科技苑《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。《博客》:Python全栈,Golang开发,PyQt5和Tkinter桌面开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flas
- JDBC Java连接数据库
nqqcat~
javaidea
1.准备下载jar——QQ群mysql-connect-java新建工程及目录添加驱动:把jar包添加到项目中,并添加到类库新建数据库新建表2.编写代码目标:创建链接打通连接四个参数驱动;URL;用户名;密码五个步骤加载驱动;创建连接;创建Statement;执行SQL;关闭,释放资源packagecom.wdzl.demo01;importjava.sql.Connection;importja
- 高性能PHP框架webman爬虫引擎插件,如何爬取数据
Ai 编码
php教程php爬虫开发语言
文章精选推荐1JetBrainsAiassistant编程工具让你的工作效率翻倍2ExtraIcons:JetBrainsIDE的图标增强神器3IDEA插件推荐-SequenceDiagram,自动生成时序图4BashSupportPro这个ides插件主要是用来干嘛的?5IDEA必装的插件:SpringBootHelper的使用与功能特点6Aiassistant,又是一个写代码神器7Cursor
- Vue打包(webpack)缓存
歌歌的前端学习之路
vue.jswebpack前端
解决方法:1、修改vue.config.js文件constTimestamp=newDate().getTime();module.exports=defineConfig({configureWebpack{output:{filename:`[name].${Timestamp}.js`,chunkFilename:`[name].${Timestamp}.js`},},css:{extrac
- cordova app webpack升级为vite
weixin_45410246
cordova-hcpCordovavuevitewebpack前端node.jsvite
本文是对vue2进行兼容1.在项目根目录下运行以下命令,安装Vite和必要的插件:npminstallvite@vitejs/plugin-legacy--save-devvite:Vite核心包。@vitejs/plugin-legacy:为旧版浏览器提供支持(建议添加vite生成的script会有type=“module”)。否则在cordova中可能报错Failedtoloadmodules
- python爬虫系列课程4:一个例子学会使用xpath语法
wp_tao
Python副业接单实战项目python爬虫开发语言
python爬虫系列课程4:一个例子学会使用xpath语法本文通过一个例子,学会xpath的各种语法,可以作为xpath的查询手册使用,代码如下:fromlxmlimportetreetext='''firstitemseconditemthirditemfourthitem<liclass="item-0
- 使用Selenium和bs4进行Web数据爬取和自动化(爬取掘金首页文章列表)
程序员霄霄
软件测试selenium前端自动化软件测试功能测试自动化测试程序人生
前言:Web数据爬取和自动化已成为许多互联网应用程序的重要组成部分。本文将介绍如何使用Python中的两个强大库,即Selenium和BeautifulSoup,来实现自动化操作、网页数据提取以及网页内容分析。并以爬取掘金首页文章列表标题和url为例子进行讲解.安装和使用Selenium本文是在python环境下使用selenium,使用浏览器是火狐,系统是win10系统。python环境的配置这
- python爬虫之自动化爬取网页
陌小
pythonseleniumpythonchrome
以下为公开源码fromseleniumimportwebdriverfromselenium.webdriver.chrome.optionsimportOptionsimporttimefrombs4importBeautifulSoupurl='https://movie.douban.com/'chrome_optins=Options()chrome_optins.add_argument
- 浏览器中wss请求状态码101是成功了吗
rock——you
运维websocket
是的,状态码101SwitchingProtocols代表WebSocket连接成功。状态码101解释在WebSocket连接过程中,客户端(浏览器)发送一个HTTPUpgrade请求,要求服务器将连接从HTTP协议升级到WebSocket协议(ws://或wss://)。如果服务器同意升级,就会返回:HTTP/1.1101SwitchingProtocolsUpgrade:websocketCo
- 在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题
老友@
后端springbootjava后端requestTomcat异步线程多线程
在SpringBoot中使用异步线程时的HttpServletRequest复用问题一、问题描述:异步线程操作导致请求复用时`Cookie`解析失败1.场景背景2.问题根源二、问题详细分析1.场景重现2.问题分析三、解决方案四、总结一、问题描述:异步线程操作导致请求复用时Cookie解析失败1.场景背景在一个Web应用中,通常每个请求都会有一个HttpServletRequest对象来保存该请求的
- webpack基础配置
吃杠碰小鸡
前端前端工具库webpack前端javascript
文章目录一、默认入口和默认出口二、资源配置三、输出文件3.1多文件入口3.2HtmlWebpackPlugin插件四、环境4.1环境变量4.2热更新五、代码分离5.1公共模块5.2懒加载5.3预获取/预加载模块六、缓存七、TreeShaking八、公共路径webpack是一个用于现代JavaScript应用程序的静态模块打包工具,在许多项目中都有应用,但是往往平台搭建以后很少去修改配置,熟悉基础配
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D