当前位置: 首页 > news >正文

企业建设网站没有服务器建设旅游网站的工作方案

企业建设网站没有服务器,建设旅游网站的工作方案,网站建设学什么语音,软件工程文档目录 1、实现分析 2、步骤 1#xff09;新建login.jsp 2#xff09;修改LoginServlet#xff1a; 3#xff09;启动访问#xff1a; 3、安全性考虑 4、最佳实践思路 1#xff09;选择安全的认证机制 2#xff09;强化会话管理 3#xff09;安全地存储用户凭证…目录 1、实现分析 2、步骤 1新建login.jsp 2修改LoginServlet 3启动访问 3、安全性考虑 4、最佳实践思路 1选择安全的认证机制 2强化会话管理 3安全地存储用户凭证 4使用HTTPS 5安全的Cookie管理 6定期审查和更新 7提醒用户 1、实现分析 需求勾选“记住我” 下次访问登陆页面自动填充用户名密码。 怎样自动填充用户名和密码? 记住我功能要实现的效果用户把浏览器关闭过几天再来访问也能自动填充所以需要将登陆信息存入一个可以长久保存、并且能够在浏览器关闭、重启后依然有效的地方使用Cookie。 将用户名和密码写入Cookie中并持久化存储Cookie下次访问浏览器发送请求时会自动携带Cookie。 在页面获取Cookie数据后设置到用户名和密码框中。 什么时候写入Cookie? 登录成功且用户在登录页面勾选了记住我的复选框。 流程分析 前端需要在发送请求和数据的时候多携带一个用户是否勾选记住我的数据。LoginServlet获取到数据后调用Service完成用户名和密码的验证。登录成功并且用户在前端勾选了记住我需要向Cookie中写入用户名和密码的数据并设置Cookie的有效期。将数据响应给前端这时后端返回给前端的Cookie数据就已经存储好了。在页面获取Cookie中的数据并把数据设置到登录页面的用户名和密码框中。 2、步骤 1新建login.jsp 在webapp中新建使用JSP相较于HTML在此功能更有优势 JSPJava Server PagesJava 服务端页面。是一种动态的网页技术其中既可以定义 HTML、JS、CSS等静态内容也可以定义 Java代码的动态内容也就是 JSP HTML Java。 作用简化开发避免了在Servlet中直接输出HTML标签频繁地用response.getWriter().write()方法输出。 JSP页面最终会被Web服务器Tomcat转换为Servlet然后由Java Web容器执行。 使用Servlet进行逻辑代码开发、使用JSP进行数据展示已过时。 更多的是使用 HTML  Ajax 使用Servlet进行后端逻辑代码开发、使用HTML进行数据展示HTML是静态页面怎么进行动态数据展示呢这就是 Ajax 的作用了。 为了可以在页面获取Cookie中的数据使用JSPEL表达式 % page contentTypetext/html;charsetUTF-8 languagejava % !DOCTYPE html html langenheadmeta charsetUTF-8title登录/title /headbodyform actionlogin methodpost idformp用户名:input idusername nameusername value${cookie.username.value} typetext/pp密码:input idpassword namepassword value${cookie.password.value} typepassword/pp记住我input idremember nameremember value1 typecheckbox/pinput typesubmit classbutton value登录/form /div /body /html EL表达式 主要作用是获取数据。其实就是从域对象中获取数据然后将数据展示在页面上。 ${cookie.key.value}    key存储在Cookie中的键的名称 获取用户名的值 ${cookie.username.value} 获取密码的值${cookie.password.value} JavaWeb中有四大域对象 page当前页面有效 request当前请求有效包括请求转发forward session当前会话有效 application当前应用有效 EL表达式获取数据会依次从这4个域作用范围从小到大中寻找直到找到为止。 记住我复选框在用户提交表单时前端将checkbox的状态选中或未选中这里将选中的值设为1用于之后的判断作为请求的一部分发送到后端。 2修改LoginServlet 获取复选框的值并在登录成功后进行设置Cookie WebServlet(/login) public class LoginServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取参数String username request.getParameter(username);String password request.getParameter(password);//获取复选框数据String rememberrequest.getParameter(remember);//使用MyBatis查询数据表如果用传来的参数能查到User对象则成功登录//MyBatis的使用步骤String resource mybatis-config.xml;InputStream inputStream Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession sqlSessionFactory.openSession();UserMapper userMapper sqlSession.getMapper(UserMapper.class);User user userMapper.selectUser(username, password);sqlSession.close();//进行响应response.setContentType(text/html;charsetutf-8);PrintWriter writerresponse.getWriter();if (user!null){//登录成功//判断用户是否勾选记住我字符串写前面是为了避免出现空指针异常if(1.equals(remember)){//勾选了记住我 发送Cookie//1. 创建Cookie对象Cookie c_usernamenew Cookie(username,username);Cookie c_passwordnew Cookie(password,password);// 设置Cookie的有效期c_username.setMaxAge(60*60*24*7); //一周c_password.setMaxAge(60*60*24*7);//2. 发送response.addCookie(c_username);response.addCookie(c_password);}//将登陆成功后的user对象存储到sessionHttpSession sessionrequest.getSession();session.setAttribute(user,user);request.setAttribute(username,username);request.getRequestDispatcher(/SuccessServlet).forward(request,response);}else {writer.write(登录失败);}}}3启动访问 只有用户名和密码输入正确且勾选了remeber的复选框在响应头中才可以看到Cookie数据 ​​​​​​​​​​​​​​登录成功并勾选了记住我后后端返回给前端的Cookie数据就已经存储好了接下来就需要在页面获取Cookie中的数据并把数据设置到登录页面的用户名和密码框中。 关闭浏览器重新访问登录页面用户和密码已经被填充。 3、安全性考虑 虽然确实可以将用户名和密码或任何其他数据写入Cookie中并通过设置Cookie的持久化属性使其在浏览器中保存一段时间但是不推荐将敏感信息如用户名和密码存储在Cookie中。 原因 安全性问题Cookie是在客户端即用户的浏览器上存储的。这意味着任何能够访问用户计算机的人或恶意软件都可以读取这些Cookie。因此将用户名和密码存储在Cookie中会使这些信息面临被窃取的风险。 明文存储默认情况下Cookie是以明文形式存储的。即使通过某种方式加密了用户名和密码但如果加密密钥也存储在客户端或易于访问的地方那么这些信息仍然可能面临被解密的风险。 会话劫持如果攻击者能够获取到包含用户名和密码的Cookie他们可以伪造请求冒充合法用户访问应用导致会话劫持。​​​​​​​ 更好的做法 使用安全的认证机制如OAuth、OpenID Connect或简单的用户名/密码认证结合安全的会话管理。在用户名/密码认证中当用户成功登录后服务器应该生成一个唯一的会话ID并将其存储在Cookie中。这个会话ID应该与服务器上的会话数据相关联而不是直接包含用户名和密码。其中可以包含用户的认证状态和其他必要信息。这样即使敏感信息不在客户端存储也可以通过会话ID识别已登录的用户。即使Cookie被窃取攻击者也无法直接获取到用户的敏感信息。同时使用HTTPS来加密浏览器和服务器之间的通信也是至关重要的即使Cookie被窃取攻击者也无法轻易解密其中的内容从而确保Cookie在传输过程中的安全性。 总之虽然技术上可以将用户名和密码写入Cookie并持久化存储但出于安全考虑应该采用更安全的会话管理方法来处理用户的认证状态。 4、最佳实践思路 安全地使用“记住我”功能的最佳实践涉及到多个方面包括认证机制的选择、会话管理的安全性以及用户凭证的存储和处理。以下是一些关键的最佳实践 1选择安全的认证机制 OAuth/OpenID Connect使用OAuth或OpenID Connect等第三方认证服务。这些服务提供了更高级别的安全性并且通常已经解决了许多常见的安全问题。 用户名/密码认证如果使用传统的用户名/密码认证确保密码策略足够强大包括要求密码长度、复杂度并定期提示用户更改密码。 2强化会话管理 会话ID使用不可预测的、足够长的会话ID并且不要将用户ID或其他敏感信息直接编码在会话ID中。 会话有效期限制“记住我”功能的会话有效期避免长期会话带来的潜在风险。定期要求用户重新登录特别是在敏感操作之前。 会话固定实施会话固定策略以防止会话劫持。当用户登录时生成一个新的会话ID并立即使之前的会话ID失效。 会话注销提供明确的会话注销机制并确保在用户登出时所有相关的会话数据都被正确清除。 3安全地存储用户凭证 加密存储用户凭证如密码应始终以加密形式存储并且使用强加密算法和安全的密钥管理策略。 避免明文存储绝不要以明文形式存储或传输用户凭证包括在“记住我”功能的实现中。 4使用HTTPS 全程加密确保整个应用都使用HTTPS包括登录页面、认证过程和所有后续的用户交互。这可以防止中间人攻击和数据泄露。 5安全的Cookie管理 HttpOnly和Secure标志为存储会话信息的Cookie设置HttpOnly和Secure标志防止跨站脚本攻击XSS和未加密的传输。 避免在Cookie中存储敏感信息不要在Cookie中直接存储用户的敏感信息如密码或加密密钥。 6定期审查和更新 安全检查定期检查是否有潜在的安全漏洞或风险。 更新和补丁及时应用安全更新和补丁以修复已知的安全问题。 7提醒用户 不要在公共计算机或不受信任的网络环境中使用此功能。 定期查看和修改他们的登录信息。
http://www.pierceye.com/news/713696/

相关文章:

  • 做篮球网站用的背景图广州黄埔做网站的公司
  • 爱客源seo怎么刷关键词排名
  • 自己做网站网页文件在哪里公司官网定制
  • 网站建设怎么样工作室哪个网站可以免费制作h5
  • 做网站学的是代码吗机器封所有端口 不支持做网站
  • 类似于美团的网站开发两学一做网站专栏怎么设置
  • 天津seo网站管理千川推广官网
  • 技术支持 光速东莞网站建设企业信息免费查询系统
  • 网站设计主流尺寸weui wordpress模板
  • 汕头市网站建设商机互联网站建设
  • 口碑好的网站建设苏州园区做网站公司
  • 网站互联网设计图风格网站服务器异常是什么意思
  • 有哪些好的做兼职网站有哪些免费做ppt的网站
  • 学生成绩管理系统网站建设上海公共招聘网12333官网
  • 邵东做网站的公司wordpress修改文章字体颜色
  • 那个网站百度收录快天河高端网站建设
  • 网站建设 客户拜访wordpress设置新页面
  • 做百度推广送的网站网站建设中gif
  • 网站风格介绍wordpress怎么给产品编号
  • 站长聚集地深圳网络提速优化服务包
  • 西安外贸网站建设公司网站域名过期后续费多长时间生效
  • 网站制作资质2017建设厅网站
  • 网站系统开发毕业设计哈尔滨seo优化软件
  • 南通企业网站网站制作的书籍
  • 长沙网站收录怎么网站能找人做装修事
  • 鞍山网站制作谁家好2021没封的网站有人分享吗
  • 网站建设公司net2006iis虚拟网站
  • 有哪些竞价网站wordpress手机端网站模板下载
  • 浙江建设厅网站施工员报名莱芜庞允盟
  • 网站建设 销售 知乎云南网站设计外包