首页
学习
活动
专区
圈层
工具
发布

安全开发之 token 那些事

token 就是用来区别请求是来自用户本身还是他人伪造的一个好办法。... 在表单提交上来时先检查接收到的 token 是否与 session 中的 token 相等,相等即可证明请求是来自用户自己,不相等则该请求很可能并非来自用户本身,很可能用户遭到了 CSRF...这是因为攻击者如果要利用 CSRF,构造一个包含恶意请求的页面,无论 GET 还是 POST 还是别的请求类型,由于同源策略的限制,请求只能由构造 form 表单发出,AJAX 是不支持跨域发送请求的(...token 的生成方法 其实 csrf token 就是一段随机值而已,它的实现方法因人而异,不同的公司可能有不同的标准,可以使用标准的 JWT 格式,也可以是内部约定的实现方法,但总的来说要满足随机性...下面分别以 PHP 和 JAVA 为例 PHP:使用 uniqid() 方法生成随机值,开启第二个参数增加一个熵,使生成的结果更具唯一性,应对高并发 functiongenerateToken() {

2.1K00

C# 变量和常量

初始化的一般形式为: variable_name = value; 接受来自用户的值 System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中...整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。...这里有一些浮点常量的实例: 3.14159 /* 合法 */ 314159E-5L /* 合法 */ 字符常量 字符常量是括在单引号里,例如,'x',且可存储在一个简单的字符类型变量中...一个字符常量可以是一个普通字符(例如 'x')、一个转义序列(例如 '\t')或者一个通用字符(例如 '\u02C0')。...字符串常量包含的字符与字符常量相似,可以是:普通字符、转义序列和通用字符 使用字符串常量时,可以把一个很长的行拆成多个行,可以使用空格分隔各个部分。 这里是一些字符串常量的实例。

90210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java面试:2021.05.22

    这里区分两个点,接口优化可以是指接口的规范以及QPS方面的性能优化。...一个后端接口大致由四个部分组成:接口地址 (url)、接口请求方式 (get、post等)、请求数据 (request)、响应数据 (response)。...4.1、PreparedStatement 采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。...PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理, 而不再对sql语句进行解析,准备,因此也就避免了sql注入问题. 4.2、使用正则表达式过滤传入的参数 4.3、字符串过滤 4.4、jsp中调用该函数检查是否包函非法字符...4.5、数据库信息加密 4.6、其他方面 使用JSP的时候要注意 1.不要随意开一生产环境汇总Webserver的错误显示; 2.永远不要相信来自用户端的变量输入,有固定格式的变量一定要严格检查对应的格式

    46720

    从零开始:机器学习项目的端到端开发流程全解

    比如说,这个项目的目标可以是提高推荐的准确率,让用户满意度提升10%。二、数据收集与清洗:让数据“讲故事”接下来,我们需要准备好机器学习的“食材”,也就是数据。...这里的数据可以是来自用户的行为记录、数据库中的历史订单信息等等。数据收集后,我们还需要清洗数据,剔除无效数据、处理缺失值。...常见的方法包括特征选择、特征缩放和特征编码。举个例子,对于用户的“性别”字段,我们需要把“男”和“女”转成数值表示,比如用独热编码。...API,用户可以通过POST请求获取预测结果。...六、总结与反思:学习项目中的经验教训一个机器学习项目的开发,是从明确问题到模型部署的闭环流程。在实际操作中,我们会遇到各种挑战,比如数据质量、模型过拟合等问题。每次解决问题都是一次成长的机会。

    26610

    某小公司 RESTful、共用接口、前后端分离、接口约定的实践

    客户端对接是这样子的: 安卓、ios一套;部分接口各自用一套;html5端一套。 客户端和后台是不停交流的 接口文档是这样的 ? img ?...resultfull接口约定 首先我们选择一个名词复数,比如产品 post方法 新增一条XXX 比如 ……/products 则代表新增一条产品 入参json如下: { "name":"我是一款新产品...这里我们以是否名词复数来判断是对象还是list. java代码control层 @ResponseBody @RequestMapping(value = "/A项目/B模块/products...} patch 方法 更新局部XXX产品YYY信息 入参是post方法时入参的子集,所有支持更新的参数会说明,并不是支持所有变量 ……/products/{id} { "name":"我是一款新产品...而入参含义,直接打开postman可以直接查看每个字段的含义,并且,可以实时调取开发环境数据(非开发人员电脑),这里我们使用了多环境,详情可了解我之前写的一篇 我是如何重构整个研发项目,促进自动化运维DevOps

    75940

    Node.js究竟是什么?Node.js工作原理解析

    它可以是从读取/写入本地文件到向 API 发出 HTTP 的任何内容。 I/O 需要时间,因此会阻止其他函数。...阻塞 I/O(左)与非阻塞 I/O(右) 阻塞 I/O 在阻塞方法中,在 user1 的数据被输出到屏幕之前,不会启动 user2 的数据请求。...setTimeout(2000)是一个 Node API。在调用它时,先注册事件回调。事件将等待 2000 毫秒,然后回调这个函数。...在回调队列中,函数等待调用栈为空,因为每个语句都执行一次。这由事件循环处理。 最后一个 console.log() 运行,并且 main() 从调用栈中弹出。...Require 是一个函数,它接受参数 “path” 并返回 module.exports。 Node 模块 Node 模块是一个可重用的代码块,它的存在不会对其他代码产生意外地影响。

    2.1K30

    在前后端分离的路上承受了多少痛?看看这篇是否能帮到你?

    客户端对接是这样子的: 安卓、ios一套;部分接口各自用一套;html5端一套。...RESTful接口约定 首先我们选择一个名词复数,比如产品 post方法 新增一条XXX 比如 ……/products 则代表新增一条产品 入参json如下: { "name":"我是一款新产品...这里我们以是否名词复数来判断是对象还是list. java代码control层 @ResponseBody @RequestMapping(value = "/A项目/B模块/products/{id...} patch 方法 更新局部XXX产品YYY信息 入参是post方法时入参的子集,所有支持更新的参数会说明,并不是支持所有变量 ……/products/{id} { "name":"我是一款新产品...而入参含义,直接打开postman可以直接查看每个字段的含义,并且,可以实时调取开发环境数据(非开发人员电脑),这里我们使用了多环境,详情可了解我之前写的一篇我是如何重构整个研发项目,促进自动化运维DevOps

    1.1K30

    Node.js 究竟是什么?

    它可以是从读取/写入本地文件到向 API 发出 HTTP 的任何内容。 I/O 需要时间,因此会阻止其他函数。...阻塞 I/O(左)与非阻塞 I/O(右) 阻塞 I/O 在阻塞方法中,在 user1 的数据被输出到屏幕之前,不会启动 user2 的数据请求。...setTimeout(2000)是一个 Node API。在调用它时,先注册事件回调。事件将等待 2000 毫秒,然后回调这个函数。...在回调队列中,函数等待调用栈为空,因为每个语句都执行一次。这由事件循环处理。 最后一个 console.log() 运行,并且 main() 从调用栈中弹出。...Require 是一个函数,它接受参数 “path” 并返回 module.exports。 Node 模块 Node 模块是一个可重用的代码块,它的存在不会对其他代码产生意外地影响。

    1.7K40

    某神秘公司 RESTful、共用接口、前后端分离、接口约定的实践

    客户端对接是这样子的: 安卓、ios一套;部分接口各自用一套;html5端一套。 客户端和后台是不停交流的 接口文档是这样的 ? img ?...resultfull接口约定 首先我们选择一个名词复数,比如产品 post方法 新增一条XXX 比如 ……/products 则代表新增一条产品 入参json如下: { "name":"我是一款新产品...这里我们以是否名词复数来判断是对象还是list. java代码control层 @ResponseBody @RequestMapping(value = "/A项目/B模块/products...} patch 方法 更新局部XXX产品YYY信息 入参是post方法时入参的子集,所有支持更新的参数会说明,并不是支持所有变量 ……/products/{id} { "name":"我是一款新产品...统一js请求框架 这里我们使用angular js的请求框架,因为我们内部对angularjs使用较多,比较熟悉,封装后的请求,可以自动弹窗错误请求,可复写错误回调。

    93930

    Mysql常用查询语句

    SELECT * FROM tb_name WHERE type = ‘T’ SELECT * FROM tb_name WHERE type = ‘F’ 逻辑运算符:and or not 五查询非空数据...’ 完全匹配的方法”%%”表示可以出现在任何位置 八查询前n条记录 SELECT * FROM tb_name LIMIT 0,$N; limit语句与其他语句,如order by等语句联合使用,...[date]’ ORDER BY date ; 注:SQL语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询 year(data):返回data表达式中的公元年分所对应的数值...,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询 十七显示数据表中重复的记录和记录条数 SELECT  name,age,count(*) ,age FROM tb_stu WHERE...二十对统计结果进行排序 函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和

    6.2K20

    @requestparam和@PathVariable和@param和@RequestParam区别

    的参数的值将传入; required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404 错误码; defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是...name=Aaron&age=18 时,将会把查询串中的参数按名绑定到demo1方法的相应形参上 @RequestMapping(value="/demo1") public void demo1...当访问URL为 localhost:8080/demo2/Bob/12时,将会把URL占位符的的参数按名绑定到demo2方法的相应形参上 @RequestMapping(value="/demo2/{name...@RequestBody 在post请求中,当访问URL为/user/UpdateAddressByUaId @RequestMapping(value = "/user/UpdateAddressByUaId...UserAddress userAddress){ R rrr = myService.confirmAddress(userAddress); return rrr; } 自用整理

    2.7K10

    SQL注入不行了?来看看DQL注入

    ORM库的作者由于DQL的严格类型限制而未实现UNION运算符(而UNION则意味着可以选择非均匀数据)。 DQL还支持子查询和表达式JOIN,WHERE,ORDER BY,HAVING,IN等。...App\Entity\Post p WHERE id = '$query' ORDER BY p.publishedAt DESC"; $sqlQuery = "SELECT * FROM post WHERE...如果此数据来自用户输入,那我们就可以利用DQL注入。 DQL注入操作的原理与SQL注入的利用没有太大区别,但是我们需要知道的是,攻击者并不能完全控制将发送到数据库的查询语句是什么。...让我们看看创建这样一个恶意查询时发生了什么(从Post类方法调用QueryBuilder): DQL查询将转换为抽象语法树,然后在连接的DBMS的语法中将其转换为SQL查询。...没有简单的方法来获取所有模型的列表。 基于错误(SQLite) 使用SQLite DBMS时,还有一个功能– SQLite语言非常差,并且无论使用什么DBMS,DQL都提供相同的接口。

    4.6K41

    常用SQL查询语句,值得回看不要错过,好记性不如多看看!

    SELECT * FROM tb_name WHERE type = ‘T’ SELECT * FROM tb_name WHERE type = ‘F’ 逻辑运算符:and or not 五、查询非空数据...’ 完全匹配的方法”%%”表示可以出现在任何位置 八、查询前n条记录 SELECT * FROM tb_name LIMIT 0,$N; limit语句与其他语句,如order by等语句联合使用,会使用...[date]’ ORDER BY date ; 注:SQL语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询 year(data):返回data表达式中的公元年分所对应的数值 month...,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询 十七、显示数据表中重复的记录和记录条数 SELECT name,age,count(*) ,age FROM tb_stu WHERE...二十、对统计结果进行排序 函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和

    3.4K30

    Django视图:构建动态Web页面的核心技术

    视图可以是简单的函数,也可以是复杂的类,但它们的主要职责是处理输入(如表单数据)并返回输出(如网页)。...1.1 函数视图函数视图是最简单的视图形式,它是一个接受Web请求并返回响应的Python函数1.2 类视图类视图提供了更多的灵活性和可重用性。...它们通常继承自 django.views.View 类,并重写 get、post 等方法来处理不同的HTTP请求方法2. 处理模板Django视图通常与模板一起工作,以生成动态HTML内容。...上下文可以是字典或任何可迭代的对象。4. 处理表单数据Django视图可以处理用户通过表单提交的数据。这通常涉及到使用Django的表单类来验证和处理数据。5....6.代码实现为了更好地理解上述概念,下面是一个完整的示例代码,展示了如何在Django中创建一个简单的博客应用,包括视图、模板和表单处理。

    1.1K10

    Django视图:构建动态Web页面的核心技术

    视图可以是简单的函数,也可以是复杂的类,但它们的主要职责是处理输入(如表单数据)并返回输出(如网页)。...1.1 函数视图 函数视图是最简单的视图形式,它是一个接受Web请求并返回响应的Python函数 1.2 类视图 类视图提供了更多的灵活性和可重用性。...它们通常继承自 django.views.View 类,并重写 get、post 等方法来处理不同的HTTP请求方法 2. 处理模板 Django视图通常与模板一起工作,以生成动态HTML内容。...上下文可以是字典或任何可迭代的对象。 4. 处理表单数据 Django视图可以处理用户通过表单提交的数据。这通常涉及到使用Django的表单类来验证和处理数据。 5....6.代码实现 为了更好地理解上述概念,下面是一个完整的示例代码,展示了如何在Django中创建一个简单的博客应用,包括视图、模板和表单处理。

    1.1K10

    【愚公系列】2022年01月 Python教学课程 46-Django框架之HttpRequest

    P\d+)/$', views.index), 视图中函数: 参数的位置可以变,跟关键字保持一致即可 def index(request, value2, value1):...都是QueryDict类型的对象 与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况 方法get():根据键获取值 如果一个键同时拥有多个值将获取最后一个值 如果键不存在则返回...2.请求体 请求体数据格式不固定,可以是表单类型字符串,可以是JSON字符串,可以是XML字符串,应区别对待。 可以发送请求体数据的请求方式有POST、PUT、PATCH、DELETE。...例如要获取请求体中的如下JSON数据 {"a": 1, "b": 2} 可以进行如下方法操作: import json def post_json(request): json_str = request.body...,表示请求使用的HTTP方法,常用值包 括:‘GET’、‘POST’。

    1.2K60

    Nginx-helper纯代码版,文章评论发布自动清理Fastcgi缓存

    本文分享一个博客自用、原创的Nginx-Helper纯代码版本,帮你的网站再消灭一个插件。...懒得研究如何解决,想起之前给有偿用户写过一个纯代码版本,解决 PHP 版本过低无法兼容 Nginx-Helper 插件的问题。这次正好拿来完善一下,而且还能消灭一个插件。...',99); //评论审核清理缓存(不需要可注释) //文章发布清理缓存函数 function Clean_By_Publish($post_ID){ $url = get_permalink.../清理首页缓存(不需要可注释此行) //清理文章所在分类缓存(不需要可注释以下5行) if ( $categories = wp_get_post_categories...( $category_id )); } } //清理文章相关标签页面缓存(不需要可注释以下5行) if ( $tags = get_the_tags( $post_ID

    1.3K70

    Effective-java-读书笔记之类和接口

    第15条 使类和成员的可访问性最小化尽可能地使每个类或者成员不被外界访问.对于顶层(非嵌套)的类和接口, 只有两种可能的访问级别: 包级私有(package private)和公有(public).如果一个包级私有的顶层类...换句话说, 该类必须有文档说明它可覆盖的方法的自用性. 更一般地, 类必须在文档中说明, 在哪些情况下它会调用可覆盖的方法....protected方法, 也可以是protected的域, 后者比较少见.例子: java.util.AbstractList中的removeRange方法....可以出现在代码中任何允许存在表达式的地方.当且仅当匿名类出现在非静态环境中时, 它才有外围实例. 但是即使它们出现在静态的环境中, 也不可能拥有任何静态成员.常见用法: 创建函数对象....如果成员类的每个实例都需要一个指向其外围实例的引用, 就要把成员类做成非静态的; 否则, 就做成静态的.假设这个嵌套类属于一个方法的内部, 如果你只需要在一个地方创建实例, 并且已经有了一个预置的类型可以说明这个类的特征

    93071

    Kubernetes API Server的工作原理

    图片Kubernetes API Server是Kubernetes集群中的主要组件之一,它负责处理来自用户和其他组件的请求,并提供对集群资源的操作和管理。...认证方式可以是基于令牌、用户名/密码等。接着,API Server会使用访问控制规则对请求进行授权,判断是否允许客户端执行特定操作。...请求路由和转发:一旦认证和授权通过,API Server会根据请求的URI路径和HTTP方法将请求路由到相应的处理程序中。...每个资源(如Pod、Service等)拥有一个对应的处理程序,用于处理与该资源相关的请求。核心处理逻辑:API Server的核心处理逻辑是对请求进行解析和验证。...响应的格式可以是JSON或其他支持的格式。

    39741

    PHP基础面试题 - 第六天

    接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。...抽象类可以提供某些方法的部分实现,接口不可以.抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。在抽象类中加入一个方法,那么它的子类就同时有了这个方法。...而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。...此外接口不能包含字段、构造函数、析构函数、静态成员或常量。 2.表单中get和 post 提交方法的区别?...1.GET提交数据会附在URL里,所以是明文传输,而POST是放置在HTTP包里,地址栏不会显示 2.GET传参数会有大小的限制,因浏览器和操作系统的不同而不同。

    53530
    领券