session和cookie

运维-resin常见问题.txt 运维-resin常见问题运维-resin常见问题运维-resin常见问题运维-resin常见问题 立即下载

做网页时遇到的问题,当一个form表单提交时,如果是站内的提交就有效,如果是其它站盗用的form就无效。
例(这是某站的登陆页面):
<body>
    <form action="/checkAction.do?page=success&fpage=error&method=check" method="POST">
用户名:<input type="text"><br>
密码:<input type="password"><
<input type="submit">
</form>
</body>

如果不做任何处理,那我自己在桌面上建个网页,也能提交上去,如:
<body>
    <form action="http://www.XXX.XXX/checkAction.do?page=success&fpage=error&method=check" method="POST">
用户名:<input type="text"><br>
密码:<input type="password"><
<input type="submit">
</form>
</body>
只需把网站实际地址写全就行了(红色部分),如果想防这种外部提交,java里如何做到??

--------------------------------------

4楼的这里:

還有一點:
就是除非別人知道你的struts-config.xml這個文件的所有配置。要不然在你的Actionmapping中是找不到Actionforward的。



楼主说加上了<form action="http://www.XXX.XXX/checkAction.do?的

html中form提交都是在浏览器端完成,你给出/checkAction.do,浏览器就会自动加上前面部分,最终都是submit到http://www.XXX.XXX/checkAction.do,结果无论如何都是一样的,貌似和Actionmapping无关,Actionmapping是请求来了以后服务器端做的事情。


另外4楼说的方法

httpservletreaeust.getsession(false)


这样要有效的前提是你前一个页面(就是form所在页面)有用session,而且session是浏览器关闭即失效的类型,而且模仿者不使用类似MYIE的外壳浏览器情况下

如果模仿者是使用MYIE,那么他先访问一次form所在的页面,生成session,然后再打开自己copy下来的html页面,提交form到服务器,这个时候

httpservletreaeust.getsession(false)

一样会取得到session的

不相信的可以试验一下,看来大家对session和cookie的关系还是搞得不太清楚,session的应用里面也有一个重要的部分sessionid保存在cookie里面(不支持cookie而用url传的就不说了。。。)
所以服务器端和浏览器端对cookie的处理都很大程度影响到session的行为,很多session的问题都由此而起。

---------------------------------------

试试就知道了,get出来一定是一样的,一样的submit到同一个地址。。。能不一样吗。。。

其实这个外部提交是没有方法避免的,因为你的form页面最终都是以HTML形式传送到客户端,所以copy一份相同的HTML一定可以做到提交

防止外部提交主要是防止使用程序多次提交吧,比如别人写一个程序来不断提交,这种情况就要用到一个验证码了,大家平时去论坛不是整天可以看到数字的验证码要输入吗,那个东西就是可以防止程序提交的。

---------------------------------


大哥﹐
     你真的對session理解清楚嗎﹖浏览器關了session是浏览器关闭即失效的类型嗎﹖
那我想請問
1:你知session是存活在那里嗎?
2:若你能正確的回答上面的問題那請你回答﹕是什么來決定session的生命長短的?


另﹕
   要清楚的是cookie是session的一個具體的實現。就session本身來說是與cookie沒有關系的若技朮發展的那一天可以不用cookie來實現session的話到那時我想就沒有人會將這兩個概念混在一起了!




session是保存在服务器端没错,但是要知道哪个用户是使用什么session,通过http协议这么知道的呢?

举个例子,服务器是resin,sessionid格式是使用cookie,session失效期是30分钟,这些可以通过服务器配置文件resin.conf设置:
<session-config>
        <session-max>4096</session-max>
        <session-timeout>30</session-timeout>
        <enable-cookies>true</enable-cookies>
        <cookie-domain>yourdomain</cookie-domain>
        <enable-url-rewriting>true</enable-url-rewriting>
</session-config>

进去一个使用session的jsp页面,检查response头,发现:
Set-Cookie: JSESSIONID=b5a86TcEnktd; domain=yourdomain; path=/
第一次访问的时候jsp发现这个请求没带有JSESSIONID,所以生产一个,并且set进去浏览器的cookie里面

然后第二次访问这个页面(不关闭浏览器)浏览器发现有这个cookie,对应这个domain和path,ok,
请求头包括这一行:
Cookie:  JSESSIONID=b5a86TcEnktd
服务器通过这个JSESSIONID到session池里面拿session,如果拿到,证明是有效的session(因为命名随机,所以很难撞),如果没有这个session,就证明sessionid无效,生成一个新的session,然后想上面一样set进cookie

此时关闭浏览器,再打开,访问同样的页面,由于浏览器发现刚才那个cookie已经过期(存活期是浏览器期限),所以请求头并没有加上Cookie:  JSESSIONID=b5a86TcEnktd这一行,服务器解释这个请求,找不到JSESSIONID,自然帮他生产一个新的,然后又通过response设置成Set-Cookie。
Set-Cookie: JSESSIONID=adqOWayWfard; domain=yourdomain; path=/

好了,这个cookie的id是adqOWayWfard,原来的那个是b5a86TcEnktd,服务器并不知道b5a86TcEnktd已经没有人使用了,所以它还是会存活到30分钟后才消失,但是此时如果有请求是使用了b5a86TcEnktd的JSESSIONID,服务器会认为是有效请求,此时的session就已经被别人盗用了~当然这种可能性很低。

但是楼主说的情况,是外部提交的问题,用session是解决不了的!
只要你访问过一次需要提交的页面,生成可提交的session,记录sessionid,然后在30分钟内,你可以用这个session提交,你可以用程序set入去http请求里面,也可以用url代session方式:
http://yourdomain/test.jsp;jsessionid=b5a86TcEnktd
服务器一样可以拿到session。
当然你可以在session里面设置一个值,比如时间,没session和间隔太短的都不许提交,这样可能有效一点,呵呵,但是httpservletreaeust.getsession(false)这个东西是没有用di,只要有sessionid就能让他get出东西出来,哈哈。

记住,http协议能让人提交,就不能防止别人用同样的http协议提交,因为http协议是没有验证和数据持续的东西的,所有东西都是通过request header、body来传送,只要我能写程序,分析你的http响应,然后做到和平常人的提交一模一样,你是没有办法禁止的,就算使用了图片验证码,我也可以取得图片来分析,得出验证码提交,这就是为什么现在图片验证码要很多干扰线、gif动态,为的就是防止ocr分析,只是数字的ocr识别率是很高的,也很容易做(用java,做过一个),所以我们要干扰干扰干扰~~~~
----------------------------


基于深度学习的鸟类检测识别系统:YOLOv5 + YOLOv8 + YOLOv10 + UI界面 + 数据集 YOLOv5是当前目标检测领域非常流行的模型,具有良好的检测精度和实时推理速度。其网络结构相比前几代YOLO模型进行了优化,尤其是在检测精度和计算效率上有了显著提高。YOLOv5特点高效性:能够在较低的硬件环境下进行实时检测。易于部署和使用:YOLOv5提供了简单的API接口,方便开发者快速集成和使用。优异的精度:在多个数据集上测试,表现出色。本文详细介绍了基于YOLOv5、YOLOv8和YOLOv10的鸟类检测识别系统的设计与实现。 阅读详情

相关推荐

Adams软件安装与配置全攻略:从入门到机器人仿真

机械系统动力学仿真软件Adams是工业机器人开发的重要工具,其安装过程涉及许可证配置、环境变量设置等关键技术环节。专业仿真软件安装通常需要处理系统兼容性、组件依赖和授权验证等工程问题,特别是在机器人控制仿真等场景中,还需集成MATLAB/Simulink等第三方工具。本文以Windows平台为例,详解Adams安装的核心步骤,包括系统环境检查、许可证服务器配置、工业机器人专项模块安装等实践要点,并针对NVIDIA Quadro显卡优化、27500端口通信等常见问题提供解决方案,帮助用户快速搭建可靠的仿真环境

weixin_28523493的博客 196

从cookies验证用户名和密码_你知道吗?别人是可以通过这种方式知道你登录密码的...

大家好,我是可乐,青春搞怪佛系少年。咱们公众号致力于分享干货、教程、资源和快乐,0花费的享受各种市面上svip的待遇!如今大多数人都会在电脑上浏览各种网站,很多网站都会让你注册登录。但相信很多小伙伴们在登录的时候,都会习惯性的选择保存或者记住密码,可能很多人对这个细节没怎么感到不妥,但其实里面埋藏了重要的上网安全隐患别人可以在你电脑上通过文章中这一步简单操作,就可以知道你的密码了。下面可乐来说一下...

weixin_39805195的博客 1674

遥感大模型核心技术之自监督预训练技术研究(2025年9月版)

本文系统探讨了自监督预训练技术在遥感大模型构建中的核心作用。随着遥感数据进入"大数据"时代,传统监督学习面临"数据丰富、标签贫乏"的瓶颈,而自监督预训练通过设计代理任务从无标签数据中学习特征表示,成为驱动大模型发展的关键引擎。文章分析了遥感领域对自监督预训练的三大独特挑战:多源异构性、地理空间约束和时空动态性,并提出了针对性解决方案:掩码自编码(MAE)技术及其演进、地理对比学习与多模态融合、位置感知预训练与多任务学习。

panshengwu的博客 841

shiro-根据JSESSIONID获取用户信息和判断是否登陆

【代码】shiro-根据JSESSIONID获取用户信息和判断是否登陆。

begefefsef的博客 738

UQLab——其他概率分布随机变量转换标准Gaussian分布

1、使用UQLab将其他类型的随机变量转换成标准Gaussian分布; 2、使用科学计数法输出样本,方便后续ANSYS的调用分析; 3、基于MC的可靠度分析。 原随机变量分布类型: % 调用UQLab进行采样 clc clear uqlab %% Specify these distributions as a UQLab INPUT object: PriorOpts.Marginals(1...

ikhui7的博客 3013

app逆向分析案例-95分

先把justtrusmeplus打开设置好95分,开始抓包,得到结果为: https://www.95fenapp.com/api_goods/list/v3.0?is_all=1&keywords=%E7%A7%91%E6%AF%94& page=1&page_size=20 &publish_timestamp=0 &scene=2&scene_type=95fen_android_search_personal&sn=SearchList

weixin_41763171的博客 2741

Cookie和Session的区别(面试必备)

一、共同之处: cookie和session都是用来跟踪浏览器用户身份的会话方式。 二、区别: cookie数据保存在客户端,session数据保存在服务端。 session 简单的说,当你登陆一个网站的时候,如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话sessionid,服务器根据当前sessionid判断相应的用户数据标志,...

chen13333336677的博客 17万+

RK3588 Android12 添加HDMI和喇叭声音通道切换选项

rk3588 android12系统默认接hdmi out时,声音会切换到hdmi out输出,主板声卡喇叭输出会没有声音输出。现在添加一个选项设置hdmi out时,声音可以保持主板声卡喇叭输出。

Android系统开发笔记 4162

什么是session?什么是cookie?session和cookie有什么区别?

这里是修真院前端小课堂,本篇分析的主题是 【什么是session?什么是cookie?session和cookie有什么区别?】 每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能,本篇分享的是: 【什么是session?什么是cookie?session和cookie有什么区别?】 什么...

IT修真院:初学者转行到互联网的聚集地 3万+

【基于 CasADi 的欠驱动无人船实时非线性模型预测控制(NMPC)实现 Visual Studio 2022 C++】

本文介绍了基于CasADi和IPOPT在Visual Studio 2022 C++环境下实现的欠驱动无人船实时非线性模型预测控制(NMPC)方案。文章详细阐述了NMPC基本原理、欠驱动无人船动力学模型(包含状态变量和控制变量定义),并给出了C++实现的核心代码框架。该方案通过显式引入系统动力学模型和约束条件,在每个采样周期滚动优化控制序列,有效解决了欠驱动无人船的轨迹跟踪与避碰问题。文中还提供了VS2022配置CasADi环境的详细步骤,包括预编译包下载、工程属性设置等关键环节,为工程实现提供了完整的技术

vor234的博客 650

C++软件异常分析概述

本文将详细讲述Windows系统中软件异常的分类以及常用的排查方法,给大家提供一个借鉴与参考。

dvlinker的技术专栏 4万+

Cookie 和 Session

Cookie 和 Session 文章目录Cookie 和 Session一、session二、Cookie和session的区别三、servlet中对Cookie和Session提供的封装 前言: 这篇帖子重点讲讲Cookie和Session之间的区别,以及作用,Cookie在http协议中就提到了他的定义,作用,小伙伴们可以跳转到 Http协议 这个页面看看Cookie的基本概念及作用。 前情回顾: 1、Cookie是浏览器提供的一种让程序员在本地存储数据的能力,让数据在客户端这边更持久化。 2、C

qq_54219272的博客 1万+

wireshark提取视频数据之RTP包中提取H264和H265

本文主要描述从wireshark包数据中提取出H264和H265裸流数据方法,裸流通过RTP封包方式发送,从抓包中直接提取视频流数据,进而进行流媒体问题定位

技术控的笔记 17万+

【JavaEE】Cookie 和 Session

Cookie 和 Session 详解。

2301_79765510的博客 1529

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

session、cookie和token

特性CookieSessionJWT存储位置客户端(浏览器)服务器端客户端(通常存储在浏览器的localStorage、sessionStorage或cookie中)数据类型主要为字符串(可序列化复杂对象)任意数据类型JSON格式,包含Header、Payload和Signature大小限制一般不超过4KB(不同浏览器可能有所不同)无明显限制,但受服务器内存和配置影响取决于编码后的长度,但通常较小生命周期可设置过期时间,默认为浏览器关闭时失效。

m0_69777632的博客 1816

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Cookie和Session的关系

一、共同之处: cookie和session都是用来跟踪浏览器用户身份的会话方式。 二、工作原理: 1.Cookie的工作原理 (1)浏览器端第一次发送请求到服务器端 (2)服务器端创建Cookie,该Cookie中包含用户的信息,然后将该Cookie发送到浏览器端 (3)浏览器端再次访问服务器端时会携带服务器端创建的Cookie (4)服务器端通过Cookie中携带的数据区分不同的用户 2.Session的工作原理 (1)浏览器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特

weixin_44279264的博客 6591

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

shiro 的session ,cookie 以及 session 和 cookie 的区别

在玩 spring boot 集成 shiro ,,,可是 发现 它的 session 和 cookie 把我搞得有点懵了。。。 首先 声明 session 和 cookie 的 区别,,,其实 session 和 cookie 是 一样的东西, **顺便提一下,,,在web项目里面 s...

chuncui2576的博客 2028

Session和Cookie

• 定义 :Session 是一种服务器端的机制,用于在服务器上存储用户的状态信息。它通过一个唯一的标识符(Session ID)来区分不同的用户会话。• 特点 :• 数据存储在服务器端。• Session ID 通常通过 Cookie 传递给客户端。• 适合存储敏感信息(如用户登录状态、购物车内容等)。• 生命周期由服务器控制,通常会设置超时时间。特性CookieSession存储位置客户端(浏览器)服务器端安全性较低,容易被窃取或篡改较高,数据存储在服务器端。

Aric_Jones的博客 1170

Cookie和Session的区别和联系

Cookie和Session出现的原因:由于http 协议是无状态的,服务器无法确定这次请求和上次的请求是否来自同一个客户端。利用session和cookie可以让服务器知道不同的请求是否来自同一个客户端。 1、Cookie定义 Cookie是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器。Cookies保存在客户端,主要内容包括:名字,值,过期时...

摸金校尉的博客 2万+

Cookie和Session

识别用户身份的两种技术:cookie和session。Cookie,类型为“小型文本文件”,是某些网站为了辨别用户身份,进行会话跟踪而存储在用户本地终端上的数据(通常会进行加密),由客户端计算机暂时或者永久保存的信息。session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。

Reset 1211

Cookie和session的区别

当然,伪造的时候需要注意,直接copy cookie文件到 cookie目录,浏览器是不认的,他有一个index.dat文件,存储了 cookie文件的建立时间,以及是否有修改,所以你必须先要有该网站的 cookie文件,并且要从保证时间上骗过浏览器。sessionid是服务器和客户端连接时候随机分配的,如果浏览器使用的是cookie,那么所有数据都保存在浏览器端,比如你登陆以后,服务器设置了cookie用户名,那么当你再次请求服务器的时候,浏览器会将用户名一块发送给服务器,这些变量有一定的特殊标记。

小蕊的博客 1万+

cookie和session

紧密协作:Cookie 和 Session 是协同工作的。Cookie 提供了一种机制,让客户端能够存储服务器分配的 Session ID,并在后续请求中自动发送回去。Session 则利用这个 ID 在服务器端存储和管理实际的用户状态数据。分工不同Cookie:主要负责在客户端和服务器之间传递Session ID,以及存储少量不敏感的、客户端可直接访问的数据(如用户偏好设置)。Session:主要负责在服务器端存储用户的敏感数据和复杂状态。安全性。

2402_83672777的博客 761

为什么要有cookie和session,以及cookie和session的区别

使用Cookie 1、创建一个新的Cookie          Cookie cookie = new Cookie("username",name); 2、设置cookie在客户端上存活多久          cookie.setMaxAge(30*60); 3、把cookie发送到客户          response.addCookie(cookie); 4、从客户请求得到

chenlili_liumiao的专栏 9323
上一篇: 介绍一篇关于session的好文章,写的很详细
下一篇: log4j日志操作方法
YuigAzul
博客等级 码龄21年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值