java在web开发安全性方面的总结

Java防御路径操作(Path Manipulation) 的正确姿势 本篇介绍在 Java应用中如何防御路径操作(Path Manipulation)的攻击。 阅读详情

1.       客户输入的原始数据进行校验不依赖于Script。虽然JavaScript等等的客户端的输入数据的校验即使比较方便也不能使用因为安全性方面的原因。脚本是不安全的,用户可能屏蔽脚本,我们可以将用户数据送入服务器端,在服务器上验证字符串的合法性。

2.       HTML的输入标识符中去除所有输入的尖括号'<' ' >',

3.       HTML埋进数据的时候有一定HTML编码('<' '>' '和' '"' ' ' ' →'是<' '>' '是μ"' ' &39;'的换每隔)了。(2)(3)由cross-site scripting(css)引起的,解决方法是避免脚本符号的出现。

 URLで許可される文字

 英数字「;」「/」「?」「:」「@」「&」「=」「+」「$」「,」「-」「_」「.」「!」「~」「*」「'」「(」「)」「%」

4.       需要保护的全部的网页要有用户认证机构。

登入后,把userID保存下来在SESSION中,在每个需要保护的页面追加脚本进行验证,如果session空,则验证失败,从新登陆。

<%

If Len(Session("ID")) = 0 Then

Response.Redirect "index.html"

End If

%>

下列信息做特殊处理:

*密码

*Web邮件的邮件内容等等的个人用数据

*名字 年龄、住所的个人信息

*Web应用系统内部的数据构造

*Web服务器内部的最大限度定期票等等的各种系统信息   

→[1-3.]

5.       事前可以推断的sessionID不能定义, →[1-3.]

6.       关键的重要的数据参数发送时不要出现在URL中

利用post传递参数。并且对策:

*根据SSL的密码化通信

*干扰策略。

*对话期间劫机对策

7.       hidden字段的数据不能修改传递(hidden的值不能被显示,但是会被传递并且在html源文件中可以查看值,防止其值被修改并传递)不要用hidden去取数据,改善方法是可以利用session来保存hidden数据 →[1-5.]

8.       从WWW 浏览器被发送了的<SELECT> 的<OPTION>项的值,radio项的值,checkbox项的值都要进行校验,对于上述控件提交上来的数据开数据库查询是否合法。 →[1-6.]

9.       写SQL的时候与变量结合写。要先check再提交(对用户提交的变量在放入SQL文之前先过滤) →[2-1.]

10.   组装SQL的时候输入数据的 (')和分号 ( ; ) 要进行处理。原因同9) →[2-1.]

11.   不要在脚本中嵌入数据库的密码。关于敏感数据的设置,可以设置在配置文件中,windows可以设置在注册表中。 →[2-2.]

12.   存取数据库时用户的权限分开设置。不同的用户权限是不同的,可以借助数据库的权限设置来实现,这样有利于安全性的提高。 →[2-3.]

13.   JAVA类包的导入。只导入需要的类,不使用的包和类不要导入,这样做有利于提高安全性,防止他人利用多余的类取得信息,尤其是几个敏感的类包 →[3-1.]

14.   利用安全政策文件(policy)设定来控制文件的运行权限。

文件路径:${java.home}/lib/security/java.policy

package org.penglee.policy.test;

//permission java.io.FilePermission "c://winnt//system32//notepad.exe", "execute";

import java.io.IOException;

 

public class NoSecurityManager {

         public static void main(String[] args) {

//                     SecurityManager mySecurityManager = new SecurityManager ();

//                     System.setSecurityManager (mySecurityManager);

                       try {

                                     Runtime myRuntime = Runtime.getRuntime ();

                                     myRuntime.exec ("c://winnt//system32//notepad.exe");

                       } catch (IOException e) {

                                     e.printStackTrace();

                       }

         }

}

→[3-1.]

15.   设置为私有类(private)来加以限制类中数据的修改,或者定义接口来实现。 →[3-2.]

16.   程序序列化后的数据是没有加密的,防止利用序列化后的数据读取敏感数据,可以利用transient来处理序列化的数据。→[3-3.]

17.   除明显地需要继承的类之外一律使用final类。这样可以防止利用继承来获取敏感信息。→[3-4.]

18.   利用AssertionError来抛错。详细参考该类的api文档→[3-5.]

19.   注意线程同步产生的数据不一致问题,增加数据的安全性。→[3-6.]

20.   输入中避免含有相对相对路径。含有相对路径时报错。原因可能导致兄弟文件夹被访问。→[4-1.]

 

26. 极力避免明文密码。敏感数据最好要加密,建议使用sha加密→[9-1.]

27. 用sha加密。→[9-1.]

28.29.利用程序检验路径(防止相对路径)检查文件名以及数据的安全性,含有特殊字符报错。→[9-2.]

30.31. 为了不让教多了十分小心地正在做登录时的错误信息弄错什么了。面向用户的错误信息不应该给的太足,以免用户由此推断出程序的内部结构的相关信息。→[9-3.]

32. 尽量小做需要特权的使用的数据处理的部分、 极力避开一般的数据处理用特权流行被实行了。使用权限较小的用户名来登录,尽量避开用特殊权限来处理一般数据。→[9-4.]

 

CSS—“cross-site scripting”

 

有不解的地方可以回电邮给我:penglee@263.net                    
Java后端开发必备技能及Java WEB的重要性 Java EE(Enterprise Edition):Java EE是Java平台的企业级扩展,提供了广泛的API和工具,用于开发大规模、复杂的企业应用程序。学习Java EE可以帮助你构建可伸缩、高性能的Web应用,并掌握分布式计算、消息传递、事务处理Java后端开发的技能要求及Java Web的重要性。Java EE(Enterprise Edition):Java EE是Java平台的企业级扩展,提供了广泛的API和工具,用于开发大规模、复杂的企业应用程序。安全性:后端应用的安全性是非常重要的。 阅读详情

相关推荐

Java与Web开发入门

Java 是一种广泛使用的编程语言,它可以用来开发各种类型的应用程序,包括 Web 应用程序。Java 是一种面向对象的编程语言,它具有强大的编程能力、高度的可扩展性和可移植性,使其成为 Web 开发的首选语言。在您的 Java Web 应用程序中创建一个 Servlet 类,并修改 web.xml 文件以指定 Servlet 类的 URL 映射。HTML 和 CSS:HTML 是一种用于创建 Web 页面的标记语言,而 CSS 是一种样式表语言,用于控制 Web 页面的外观和格式。

吃不胖. 327

JAVA对文件类型的校验

<br />通常,在WEB系统中,上传文件时都需要做文件的类型校验,大致有如下几种方法:<br />1. 通过后缀名,如exe,jpg,bmp,rar,zip等等。<br />2. 通过读取文件,获取文件的Content-type来判断。<br />3. 通过读取文件流,根据文件流中特定的一些字节标识来区分不同类型的文件。<br />4. 若是图片,则通过缩放来判断,可以缩放的为图片,不可以的则不是。<br />然而,在安全性较高的业务场景中,1,2两种方法的校验会被轻易绕过。<br />1. 伪造后缀名,

boaifeng的专栏 9276

深入理解SignUp第六版:Java Web应用开发与安全性

虽然内置的校验规则能覆盖大多数场景,但在某些特殊情况下,我们需要编写自定义的验证逻辑。为了实现自定义验证,我们需要使用如Hibernate Validator的注解创建自定义的验证注解,并实现相应的。举个例子,假设我们需要为User对象的age字段实现一个验证规则,确保它不超过某个特定的年龄值。首先,我们定义自定义注解@AdultString message() default "年龄必须大于18岁";Class<?Class<?然后,实现。

weixin_28999139的博客 826

【Web安全】Web安全Java代码审计总结

《网络安全Java代码审计实战》笔记。 一、SQL注入 1.1 常见的sql注入场景 1.预编译错误编程方式 String username = ""; String id = "2"; String sql = "SELECT * FROM user where id = ?"; if(!CommonUtils.isEmptyStr(username)) sql += "and username like '%" + username + "%'"; PreparedStatement pst

m0_61572518的博客 4003

Android开发者必看:5分钟搞定DeepSeek API接入(附完整代码示例)

本文为Android开发者提供快速接入DeepSeek API的完整指南,包含环境配置、网络层设计、请求体构建等关键步骤,并附有详细代码示例。通过工程化实践,帮助开发者高效集成AI对话、代码生成等高级功能,提升移动应用竞争力。

bush的博客 535

AI开发提效10倍:从需求到部署的全流程实战指南(附Prompt模板)

用AI开发不是“偷懒”,而是把时间花在更有价值的地方——原来花80%时间写重复代码,现在用AI搞定后,能把精力放在“优化用户体验”“提升系统性能”这些核心工作上,这才是AI给开发者的真正红利。如果你还没开始用AI做开发,建议从“写一个简单接口”“补一段注释”开始尝试,先用起来再优化方法。记住:AI是工具,不是对手,学会驾驭它,你会发现开发效率提升的同时,还能告别无效加班。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1529

java设置不允许提供目录遍历服务

我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnNJava 设置不允许提供目录遍历服务 在应用程序开发中,我们往往需要保护系统不遭受目录遍历攻击。这种攻击方式允许恶意用户访问不应该公开的文件和目录,导致安全隐患。本文将分享如何在Java中...

weixin_42656416的博客 259

Zemax操作--2(单透镜和双胶合透镜优化)

单透镜 要求 镜头数据里面的数量变化后要重新设计优化函数 设计 一、初始参数 按照要求输入波长、入瞳孔径、视场数据编辑器如图 物面--透镜前表面--透镜后表面--相面(镜头数据再插入一个面如图) 将2面曲率半径F数设置为10,zemax自动给出合适值 设置面2的边缘光线高度,zemax自动给出合适值 二、评价参数设置 将面1曲率半径设置为变量 再设置评价函数告诉zemax我们需要什么条件,评价函数默认即可 执行优化 双胶合透镜 要求 ...

lzy750750的博客 1万+

Java 如何验证文件名的有效性?

最后,让我们尝试实现我们自己的自定义函数来测试文件名。我们还将尝试避免任何I/O功能,只使用核心的Java方法。这类解决方案提供了更多的控制权,允许我们实现我们自己的规则。然而,我们必须考虑不同系统的许多额外限制。使用我们可以使用方法来检查给定的String是否包含任何禁止的字符。首先,我们需要手动指定一些示例值。', '|'};在我们的例子中,让我们只关注这两个操作系统,Windows的文件名比UNIX的限制更多。另外,一些的空白字符可能会有问题。

m0_69305074的博客 1427

YOLO26优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

高层筛选特征金字塔网络(HS-FPN),能够刷选出大小目标,增强模型表达不同尺度特征的能力,助力小目标检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 330

【OS】AUTOSAR架构下MCAL Modules软件分区问题分析

AUTOSAR架构下MCAL Modules软件分区问题分析

qq_36056498的博客 939

Java Web开发中的安全性

随着互联网的迅猛发展,Java Web应用在企业和个人用户中得到了广泛应用。然而,随着应用的普及,安全性问题也日益凸显。Java Web应用的安全性不仅涉及到用户数据的保护,也关系到企业的声誉和法律合规性。本文将深入探讨Java Web开发中的安全性问题,包括常见的安全威胁、有效的防护措施以及最佳实践。

weixin_52938153的博客 703

ANSYS专题-利用ANSYS SIwave进行PCB板的EMS仿真

本文详细描述了使用ANSYSSIwave进行电路板电磁敏感度(EMS)仿真的完整流程。主要步骤包括:导入AD软件生成的IPC2581文件,检查PCB叠层和电路参数,为敏感网络设置50欧姆端口并指定GND为参考网络,进行验证检查后设置频段范围和入射波类型(单/多入射、极化方式等),最后启动仿真并查看选定网络的EMS感应电压曲线。该过程提供了从文件准备到结果分析的全套操作指南,适用于评估电路板在电磁干扰环境下的性能表现。

whm128的博客 3590

java开发安全性问题_JAVA进行web开发安全问题

一共有四种,分别是XSS攻击(关键是脚本,利用恶意脚本发起攻击),SQL注入(关键是通过用SQL语句伪造参数发出攻击),DDOS攻击(关键是发出大量请求,最后令服务器崩溃),CSRF攻击(关键是借助本地cookie进行认证,伪造发送请求)。1. XSS1.1 什么是XSS?XSS攻击:跨站脚本攻击(Cross-Site Scripting),为了不和层叠样式表(Cascading Style Sh...

weixin_42512966的博客 793

CRC_16---ModBus 计算方法及代码实现

1、 CRC寄存器初始值为 0xFFFF;即16个字节全为1; 2、 CRC-16 / ModBus的多项式0xA001H (1010 0000 0000 0001B) ; ‘H’表示16进制数,‘B’表示二进制数。 计算步骤为: (1).预置 16 位寄存器为十六进制 0xFFFF(即全为 1) ,称此寄存器为 CRC 寄存器; (2).把第一个 8 位数据与 16 位 CRC 寄存器的低位相异或,把结果放于 CRC 寄存器; (3).检测相异或后的CRC寄存器的最低位,若最低位为1,CRC寄存器

1万+

YOLOv11改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题

本文记录的是改进YOLOv11的损失函数,将其替换成Slide Loss,并详细说明了优化原因,注意事项等。Slide Loss函数可以有效地解决样本不平衡问题,为困难样本赋予更高的权重,使模型在训练过程中更加关注困难样本。若是在自己的数据集中发现容易样本的数量非常大,而困难样本相对稀疏,可尝试使用Slide Loss来提高模型在处理复杂样本时的性能。

Limiiiing的博客 4568

金融行业Java Web开发中,如何确保文件夹上传的安全性?

要求:开源,免费,技术支持技术:分片,分块,断点续传,加密传输,加密存储需求:大文件上传,批量上传,断点续传,文件夹上传,大文件下载,批量下载,断点下载,文件夹下载文件夹:上传下载需要支持层级结构,采用非压缩方式文件大小:100G前端:vue2,vue3,vue-cli,jquery,html,webuploader后端:java,JSP,springboot,struts服务器:linux,信创国产化数据库:mysql,oracle,达梦,国产化数据库。

weixin_52041354的博客 318

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

国产数据库都有哪些?安全性、兼容性怎么样?java web开发应该怎么选择?

由 PingCAP 公司研发设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用等特性。:华为自主研发的分布式关系型数据库,具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。

weixin_40914952的博客 1874

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java语言的Web开发

在信息技术飞速发展的今天,Web开发已成为软件开发领域的重要组成部分。各种企业和组织都依赖于Web应用程序来提供服务、管理信息、进行业务交易等。Java作为一种成熟且广泛使用的编程语言,凭借其平台独立性、强大性和安全性,成为Web开发的首选语言之一。本文将从Java的特点、Web开发的基本概念、Java Web框架、开发工具以及最佳实践等几个方面详细探讨Java语言在Web开发中的应用。

2501_90485672的博客 424

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

PHP与Java:哪个更适合Web开发

.Net or Java, Python or PHP, PHP or Java there is always a debate — which programming language is better and the list is endless. No matter what couple you choose, there will always be ...

专业的开发者“讨论” 1130

java分前端后端吗_Java Web属于前端还是后端

Java Web属于前端还是后端发布时间:2020-06-15 13:39:15来源:亿速云阅读:325作者:鸽子Java Web 是前端还是后端?Java Web是属于后端,Java Web就是用Java技术开发的Web应用,而Java是一种可以编写跨平台应用软件、完全面向对象的高级程序设计语言,一般常用于后端服务器的开发和Android软件的开发。Java 语言特点1、简单性Java看起来设计...

weixin_42502537的博客 8501

选择 Java 进行 Web 开发的7个理由

  Java 现已成为当今大多数网络应用程序的基础,被认为对企业软件、Web 脚本、游戏和移动应用程序非常有用。Java 被许多大企业使用,被认为是企业和可维护 Web 开发的最强大参与者之一。   让我们来看看为什么应该选择 Java 进行 Web 开发   面向对象的编程语言   Java 流行的主要原因是它是一种面向对象的编程语言。 OOP 应用程序更易于管理和编码,并保持系统灵活、模块化和可扩展。在 Java 中创建的对象可以在应用程序中重用。此外,软件的可重用性也降低了开发成本。   高度

yueqian_edu的博客 1775
上一篇: windows本地安装redis单机和集群配置
下一篇: spring security oauth2.0 实现
springlovejava
博客等级 码龄9年 26粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值