关于web服务安全的一些思考
一、问题:
在开发web项目是时,安全问题有以下几种问题:
(1)用户可以自己伪造一个URL请求来进行访问吗?
(2)用户不在服务器登录,可以自己封装出用户名、密码进行访问吗?
(3)url的参数可以多次尝试进行暴力破解吗?
二、分析思路:
首先,什么是安全,用户自己拼接的URL请求就一定有错吗?
我们的JS可以写一个请求到后台,用户自己为什么不可以?
那么,安全的情形是什么?
(1)用户在服务器SESSION里有登录的记录,并且没有超时,是可以正常请求的
(2)请求的用户名密码验证是正确的,同时具有该请求权限
(3)拼接的参数格式也是正确的,后台接受的数据匹配
三、解决:
(1)使用JWT、SHIRO进行安全验证,去掉用户名密码不匹配的
(2)在URL进行访问的时候,指定访问的上下文,必须在某请求发出后,才能发出当前请求【referrer 属性可返回载入当前文档的文档的 URL】
(3)对URL请求进行加密,用户不能随便看到后台请求的URL信息【感觉加密没啥用,以加密文本也可以请求,只是不能判断意义而已】
关于web服务安全的一些思考的更多相关文章
- 《Introduction to Tornado》中文翻译计划——第五章:异步Web服务
http://www.pythoner.com/294.html 本文为<Introduction to Tornado>中文翻译,将在https://github.com/alioth3 ...
- RESTful Web 服务:教程
RESTful Web 服务:教程 随着 REST 成为大多数 Web 和 Mobile 应用的默认选择,势必要对它的基本原理有所了解. 在它提出十多年后的今天,REST 已经成为最重要的 Web ...
- Python开发【Tornado】:异步Web服务(一)
异步Web服务 前言: 到目前为止,我们已经看到了许多使Tornado成为一个Web应用强有力框架的功能.它的简单性.易用性和便捷性使其有足够的理由成为许多Web项目的不错的选择.然而,Tornado ...
- ASP.Net Web 服务 – 如何使用会话状态
在上次博客帖子中,我们讨论了客户端对web服务的使用.在这篇文章中我们将复习一下如何使用web服务的会话状态. 这是上一篇文章的延续.因此请迅速的回顾之前的文章以便有一个清晰的概念. 在web服务中要 ...
- 第五章:异步Web服务
到目前为止,我们已经看到了许多使Tornado成为一个Web应用强有力框架的功能.它的简单性.易用性和便捷性使其有足够的理由成为许多Web项目的不错的选择.然而,Tornado受到最多关注的功能是其异 ...
- 基于Socket创建Web服务
基于Socket创建Web服务 为什么要使用Socket呢,我们来看下图
- web服务端的架构演变
此文已由作者肖凡授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近Lofter项目碰到很多性能上的问题,特别是数据库相关的,每次推送后,告警就会第一时间到来.这些问题随着产 ...
- "轻"量级 Java Web 服务框架漫谈
博文太长了, 还是先说下概要: 框架"轻量"与否可以从两方面来看待: 1) 框架本身的体量 - 例如小 jar 无依赖的苗条框架; 2) 用户使用框架是否获得各种便利而无阻隔(&q ...
- Web Service 实例基于Socket创建Web服务
ServerSocket服务器端代码如下: public static void main(String[] args) throws IOException { // 1:建立服务器端的tcp so ...
随机推荐
- 虚拟机下的CentOS无法上网的解决办法
1.首先保证虚拟机的网络适配器为NAT模式 2.设置虚拟机的“编辑”-->“虚拟网络编辑器”中的VMnet8的DHCP的设置两个选项都勾选上. 3.设置物理主机,保证虚拟网关的IP地址为自动获取 ...
- 组合数取模&&Lucas定理题集
题集链接: https://cn.vjudge.net/contest/231988 解题之前请先了解组合数取模和Lucas定理 A : FZU-2020 输出组合数C(n, m) mod p (1 ...
- BZOJ1485:[HNOI2009]有趣的数列(卡特兰数)
Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<…&l ...
- IE8崩溃在CElement::GetUpdatedLayoutWithContext
发了一个我们页游助手的版本时,测试报告在某些机器上点开某网站时崩溃 "0x637e5067指令引用的0x00000008内存,该内存不能为read",查看dump文件,堆栈如下: ...
- 《metasploit渗透测试魔鬼训练营》学习笔记第九章--meterpreter
七.强大的meterpreter 7.1再探metasploit的攻击载荷模块 7.1.1典型的攻击载荷模块 metasploit涵盖了各大主流操作系统和平台,其中绝大部分是远程漏洞 ...
- jQuery.mobile.changePage的参数
选项 类型:对象 属性: allowSamePageTransition(默认值:假的) 类型:布尔 默认情况下,changePage()忽略请求更改为当前活动页面.将此选项设置为true,则允许该请 ...
- parse.JSON()报错是什么原因?
哪里出错了? JSON.parse() 会把一个字符串解析成 JSON 对象.如果字符串书写正确,那么其将会被解析成一个有效的 JSON,但是这个字符串被检测出错误语法的时候将会抛出错误. 示例 JS ...
- awk 简单使用 egrep 正则表达式
[root@python ~]# cat testcount.txt a 1.1.1.1b 2.2.2.2c 3.3.3.3a 1.1.1.1d 4.4.4.4e 5.5.5.5f 6.6.6.6 1 ...
- JDK代码中的优化 之 “avoid getfield opcode”
在查看String类源码时,常看到注释 /* avoid getfield opcode */ 如 trim()方法 public String trim() { int len = value.le ...
- MySQL初体验--安装MySQL
操作系统版本:redhat 6.7 64位 [root@mysql ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server releas ...