session标签实例:简单的系统登录代码(巧妙地避开SQL注入攻击)

本文主要是介绍session标签实例:简单的系统登录代码(巧妙地避开SQL注入攻击),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提交用户名和密码到服务器,以用户为条件查询用户记录,然后判断用户是不是已经注册,若注册就判断密码是否正确,正确则成功登录,在会话中记录用户的相关信息。查询中只以用户名为条件,让数据库从单列索引中快速找出匹配的用户记录,速度远快于同时使用用户名和密码作为条件的查询,而且还巧妙地避开了SQL注入攻击。

登录页

表单代码

              <FORM name=form1 action="" method=post οnsubmit="return checkval();"><input name=url value="base/index.html" type=hidden> <TR><TD align=right width=64 height=25>用户:</TD><TD vAlign=top width=112 height=25><INPUT style="FONT-SIZE: 12px; WIDTH: 100px; COLOR: #000000; BACKGROUND-COLOR: #fef7d4" name=USERNAME></TD><TD vAlign=top width=1> </TD></TR><TR><TD align=right width=64 height=25>密码:</TD><TD vAlign=top width=112 height=25><INPUT style="MARGIN-TOP: 14px; FONT-SIZE: 12px; WIDTH: 100px; COLOR: #000000; BACKGROUND-COLOR: #fef7d4" type=password name=PASS> </TD><TD vAlign=top width=1> </TD></TR>
校验的脚本
var url = location.href;
function checkval()
{	var pos = url.indexOf("index.htm");url = url.substring(0,pos)+"base/check.chtml";form1.action = url;if(form1.USERNAME.value==""){alert("请输入用户名");form1.USERNAME.focus();return false;}  if (form1.PASS.value==""){alert("请输入密码");form1.PASS.focus();return false;}} 
效果

登录确认页

查询

<ESql module=base id=user>Select WE_ID,USERNAME,PASS,CNNAME,DEPT,ACL,PHOTO,PHONE,MOBILE,EMAIL,OICQ,MSN,ENROLLTIME From BASE_USERS Where USERNAME='@{pPage:USERNAME}'</ESql>
判断用户存在否,不存在则回到表单页
<if x="@{logic:@{user:getLength}=0}" else=1><we x=true><script>alert("用户:@{pPage:USERNAME} 尚未注册!");history.back();</script></we>... ...
</if>
判断密码正确不,不正确则回到表单页
	<if x="@{user:PASS}" else=1><we x="@{pPage:PASS}">... ...</we><script>alert("密码不对!");history.back();</script></if>
密码正确则登录成功,在会话记录用户的相关信息
			<session><we name=WE_ID>@{user:WE_ID}</we><we name=USERNAME>@{user:USERNAME}</we><we name=PASS>@{user:PASS}</we><we name=CNNAME>@{user:CNNAME}</we><we name=DEPT>@{user:DEPT}</we><we name=ACL>@{user:ACL}</we><we name=PHOTO>@{user:PHOTO}</we><we name=PHONE>@{user:PHONE}</we><we name=MOBILE>@{user:MOBILE}</we><we name=EMAIL>@{user:EMAIL}</we><we name=OICQ>@{user:OICQ}</we><we name=MSN>@{user:MSN}</we><we name=ENROLLTIME>@{user:ENROLLTIME}</we></session>
跳转到登录成功后的指定网页
<script>location.href='@{sys:face}@{pPage:url}';</script>
完整代码
<html>
<chtml>
<ESql module=base id=user>Select WE_ID,USERNAME,PASS,CNNAME,DEPT,ACL,PHOTO,PHONE,MOBILE,EMAIL,OICQ,MSN,ENROLLTIME From BASE_USERS Where USERNAME='@{pPage:USERNAME:}'</ESql>
<if x="@{logic:@{user:getLength}=0}" else=1><we x=true><script>alert("用户:@{pPage:USERNAME} 尚未注册!");history.back();</script></we><if x="@{user:PASS}" else=1><we x="@{pPage:PASS}"><session><we name=WE_ID>@{user:WE_ID}</we><we name=USERNAME>@{user:USERNAME}</we><we name=PASS>@{user:PASS}</we><we name=CNNAME>@{user:CNNAME}</we><we name=DEPT>@{user:DEPT}</we><we name=ACL>@{user:ACL}</we><we name=PHOTO>@{user:PHOTO}</we><we name=PHONE>@{user:PHONE}</we><we name=MOBILE>@{user:MOBILE}</we><we name=EMAIL>@{user:EMAIL}</we><we name=OICQ>@{user:OICQ}</we><we name=MSN>@{user:MSN}</we><we name=ENROLLTIME>@{user:ENROLLTIME}</we></session><script>location.href='@{sys:face}@{pPage:url}';</script></we><script>alert("密码不对!");history.back();</script></if>
</if>
</chtml>
</html>
若有不明白之处请在评论中提出,我会与大家一起深入讨论 微笑

轻开平台资源下载及说明

平台及最新开发手册免费下载:http://download.csdn.net/detail/tx18/8464425

开发实例:轻开B2C电子商务网站,免费下载:http://download.csdn.net/detail/tx18/8318585

轻开平台会不定期升级为大家提供更多强大而Easy的功能,请留意下载最新的版本

这篇关于session标签实例:简单的系统登录代码(巧妙地避开SQL注入攻击)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/945863

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要