Java WEB安全问题及解决方案

CSS字体加载全链路实战:从FOIT/FOUT到font-display精准控制 字体加载是Web渲染中影响首屏性能与用户体验的关键环节,其本质是一次跨域资源请求与操作系统级字体引擎协同的复杂过程。理解@font-face声明原理、font-display取值差异(auto/swap/optional/fallback)及浏览器字重匹配机制,是解决FOIT(不可见文本闪动)与FOUT(备用字体闪动)问题的基础。技术价值在于显著优化LCP、CLS等核心Web Vitals指标,尤其在电商后台、SaaS系统等对稳定性要求高的场景中,需结合预连接(preconnect)、字体子集化、unico 阅读详情
1.弱口令漏洞,最好使用至少6位的数字、字母及特殊字符组合作为密码。数据库不要存储明文密码,应存储MD5加密后的密文,由于目前普通的MD5加密已经可以被破解,最好可以多重MD5加密。

2.未使用用户名及密码登录后台可直接输入后台URL登录系统。

解决方案:通过配置filter来过滤掉无效用户的连接请求。

3.JSP页面抛出的异常可能暴露程序信息。有经验的入侵者,可以从JSP程序的异常中获取很多信息,比如程序的部分架构、程序的物理路径、SQL注入爆出来的信息等。

解决方案:自定义一个Exception,将异常信息包装起来不要抛到页面上。

4.合法用户“注销”后,在未关闭浏览器的情况下,点击浏览器“后退”按钮,可从本地页面缓存中读取数据,绕过了服务端filter过滤。
解决方案:配置filter对存放敏感信息的页面限制页面缓存。如:

httpResponse.setHeader("Cache-Control","no-cache"); 
httpResponse.setHeader("Cache-Control","no-store");
httpResponse.setDateHeader("Expires", 0);
httpResponse.setHeader("Pragma","no-cache");

5.SQL注入漏洞,解决方案:在数据库访问层中不要使用“+”来拼接SQL语句!如:

String sql= “SELECT * FROM USERS WHERE 1=1”;
if(null != user.getUserName() && !””.equals(user.getUserName())){
sql += “ and UNAME = ‘”+user.getUserName()+”’”;
}
而应使用PreparedStatement。如:

PreparedStatement pstmt = con.prepareStatement("SELECT * FROM USERS WHERE UNAME=?");
pstmt.setString(1, “Neeke”);
如果项目中使用了Hibernate框架,则推荐使用named parameter。如:

String queryString = "from Users where uname like :name";
冒号后面是一个named parameter,我们可以使用Query接口将一个参数绑定到name参数上:

List result = session.createQuery(queryString)
                  .setString("name", user.getUserName())
                  .list();
6.文件上传漏洞。前台仅使用JS对文件后缀做了过滤,这只能针对普通的用户,而恶意攻击者完全可以修改表单去掉JS校验。
解决方案:前台JS过滤加服务器端程序过滤。具体过滤掉哪些文件类型视具体情况而定。

7.可执行脚本漏洞。对用户提交的数据未转义,一些用户提交的含有JavaScript脚本的信息被直接输出到页面中从而被浏览器执行。

解决方案:使用org.apache.commons.lang.StringEscapeUtils对用户提交的数据进行转义。如:

@RequestMapping(params="method=addTopic",method=RequestMethod.POST)
public ModelAndView addTopic(HttpServletRequest request, HttpServletResponse response, BbsTopic topic)
{
BaseAdmin user = (BaseAdmin) request.getSession().getAttribute(Constant.SESSION_USER);
topic.setBaseAdmin(user);
topic.setTopicDate(new Timestamp(System.currentTimeMillis()));
topic.setTopicContent(StringEscapeUtils.escapeHtml(topic.getTopicContent()));
topic.setTopicTitle(StringEscapeUtils.escapeHtml(topic.getTopicTitle()));
this.bbsTopicService.save(topic);
return new ModelAndView(new RedirectView("bbs.do?method=topicList&bfid="+ topic.getBfid()));
}

8.Java WEB容器默认配置漏洞。如TOMCAT后台管理漏洞,默认用户名及密码登录后可直接上传war文件获取webshell。

解决方案:最好删除,如需要使用它来管理维护,可更改其默认路径,口令及密码。


9.绝对绝对绝对要采用预处理的方式来进行sql操作,如果实在需要做sql语句的拼接,那么请做输入信息的过滤。selet,update,delete,insert,and,%,',_,这些都屏蔽了吧。

10.一般的sql注入都是从网站的前台网页寻找漏洞,建议针对前台操作和后台操作分别建立数据库操作用户。前台的用户只赋予实际需要的基本权限。后台用户可权限可以宽松些但也只能针对当前库。切不可用root级别的用户作数据库连接。否则数据丢了,你都没地方哭去。

11.用户登录表的密码一定要加密,如果可以也可将用户名一并加密。这是以防万一的最后手段,当对方看你的用户登录表的时候起码看到也不知道是什么。

12.jsp文件集中放到指定的文件夹下,如果你使用struts那么你可以将struts使用的文件放在WEB-INF目录下的某个文件夹中,因为该WEB-INF文件夹网站浏览用户是看不到的。

13.文件上传一定要做类型检查,一些jsp,php,asp等程序文件坚决不能让其上传。如果你用的是linux 下apache+tomcat 做的jk连接,你可以将文件直接上传到apache目录,或者用ln作软连接,万一对方上传了jsp文件你没判断出来,那么也是传到了apache目录下,你在jk指向中将jsp文件指定到tomcat中某一文件夹,对方在浏览器中是无法访问上传的jsp文件的。

14日志,建议增加服务的访问日志,记录来访者的IP,传递参数,对后台操作用户建立日志,记录其操作内容。完善的日志记录可以帮助你发现潜在的危险,找到已经发生的问题。




http://blog.csdn.net/fightplane/article/details/5645035
http://www.ineeke.com/archives/1335/
http://chenjinglys.blog.163.com/blog/static/16657571620121125114016746/
系统字体栈实战指南:跨平台渲染性能与可读性平衡 系统字体栈是现代Web前端中影响首屏性能、文字可读性与跨平台一致性的底层基础设施。其核心原理在于利用操作系统原生无衬线字体(如San Francisco、Segoe UI、Roboto)实现零加载延迟,通过font-family回退链动态适配不同平台的字体生态与渲染特性。技术价值体现在毫秒级文本渲染优化、高DPI屏幕下的光学尺寸自适应,以及小字号场景下清晰度提升37%以上的实测收益。典型应用场景包括金融后台、SaaS管理台和PWA类应用,尤其在需兼顾iOS/macOS/Safari与Windows/Edge 阅读详情

相关推荐

Typora主题字体美化:从Consolas到苹方,打造你的专属写作环境(Mac/Win通用)

本文详细介绍了如何通过Typora主题字体美化,从Consolas到苹方,打造专属写作环境(Mac/Win通用)。文章探讨了字体组合的科学与美学,提供了多种字体搭配方案,并深入讲解了CSS字体堆栈的魔法和实战配置技巧,帮助用户提升写作体验和视觉舒适度。

weixin_33748818的博客 383

接口api开发安全问题

所谓接口,就是类似http://Example.com/index.php?module=users&action=info&user_id=333的请求,然后服务器端直接根据user_id来做相应的会员操作,这是及其危险的接口处理,等于把当前的会员系统全暴露出来了,只要对方改一下user_id既可操作所有会员对应的接口。一般在PC端,我们是通过加密的cookie来做会员的辨识和维...

华章酱的博客 6223

从问卷到结论:手把手教你用SPSS 28完成一份完整的社科数据分析报告

本文详细介绍了如何使用SPSS 28完成社会科学研究中的数据分析报告,从问卷数据导入、清洗到描述性和推断性统计分析,再到结果呈现与报告撰写。通过实际案例演示,帮助研究者掌握SPSS 28的核心功能,提升数据分析效率与报告质量。

weixin_28717431的博客 226

项目常见SQL注入漏洞攻击及解决办法

项目接口常见SQL注入漏洞攻击及解决办法 1、弱口令漏洞 解决方案:使用至少6位的数字、字母及特殊字符组合作为密码。数据库不要存储明文密码,应存储加密后的密文。 2、未使用用户名及密码登录后台可直接输入后台URL登录系统。 解决方案:通过配置拦截器过滤掉无效用户的连接请求。 3、接口返回的信息中抛出的异常可能暴露程序信息。有经验的入侵者,可以从抛出的异常中获取很多信息,比如程序的部分架构、程序的物理路径、SQL注入爆出来的信息等。 解决方案:自定义一个Exception,将异常信息包装起来不要抛到

u010174217的专栏 7338

JavaWeb 项目安全问题及其解决方案

1.弱口令漏洞 解决方案:最好使用至少6位的数字、字母及特殊字符组合作为密码。数据库不要存储明文密码,应存储MD5加密后的密文,由于目前普通的MD5加密已经可以被破解,最好可以多重MD5加密,或者多种加密方式叠加组合。 2.未使用用户名及密码登录后台可直接输入后台URL登录系统。 解决方案:通过配置filter来过滤掉无效用户的连接请求。 3.JSP页面抛出的异常可能暴露程序信息。有经验的

sudo_Shutdown的专栏 7733

一个实际项目Java架构设计之总体设计

1      总体架构模块图 1.1   抽象架构模块图     1.2   具体技术架构模块图 如上图示所,框架主要包括了: l  MVC开发框架 l  工作流技术 l  用户、权限、角色管理 下面分别详细介绍。 2      MVC方案 2.1   视图层技术方案(view) 在常用开发框架的应用中,常用于视图层的有:Jsp ,Jsf,Fre

RocChen的专栏 3万+

session在一个controller可以获取在另一个获取不了_手把手教你从0到1模仿SpringSecurity开发一个安全框架 | Java架构师方案...

“前沿科技bot 技术专栏作品,你想学的都在这里作者:JackD”阅读这篇文章,跟着笔者一起从0到1开始写一个模拟Spring Security框架的工具吧!读完本文,你将了解Spring Security核心原理。本文demo是在Java架构师方案宝典系列中的jackdking-login-redis-token项目基础上衍生出来的。目录01核心的组件和逻辑02运行测试03 ...

weixin_39611161的博客 584

css宋体代码_DIV CSS字体(font-family)实现字体样式设置

DIV CSS字体(font-family)CSS font-family字体样式设置属性知识教程篇,CSS font-family-CSS字体样式知识教程。在网页中我们常常对网页中文字设置字体,我们即可使用font-family实现字体样式设置。此文关于使用CSS设置对象字体样式篇。从html的字体到css字体使用CSS教程。目录原始的html字体设置CSS字体设置字体选择技巧font-fami...

weixin_39612849的博客 1794

html div font-family,DIV CSS字体(font-family)

CSS font-family字体样式设置属性知识教程篇,CSS font-family-CSS字体样式知识教程。在网页中我们常常对网页中文字设置字体,我们即可使用font-family实现字体样式设置。此文关于使用CSS设置对象字体样式篇。从html的字体到css字体使用CSS教程。一、原始的html字体设置 - TOPHtml的文字字体设置代码:我是黑体字二、CSS字体设置 -...

weixin_39761696的博客 627

html宋体5号是多少像素,原始的html字体设置,font-family总结

DIV CSS字体(font-family)CSS font-family字体样式设置属性知识教程篇,CSS font-family-CSS字体样式知识教程。在网页中我们常常对网页中文字设置字体,我们即可使用font-family实现字体样式设置。此文关于使用CSS设置对象字体样式篇。从html的字体到css字体使用CSS教程。一、原始的html字体设置-TOPHtml的文字字体设置代码:我是黑体...

weixin_39889792的博客 945

css宋体代码_family【CSS 字体】(宋体 黑体 微软雅黑)CSS文字字体

css常用font-family字体大全font-family 微软雅黑font-family 宋体设置css font-family 黑体设置css字体样式css中文字体设置css设置字体css如何正确设置兼容阅读器的中文字体网页字体大小设置为12px还是14px?CSS font-family字体(宋体 黑头 微软雅黑)CSS文字字体属性教程HTML网页DIV+CSS规划中,都必须对网页设置字...

weixin_39769767的博客 5723

css宋体代码_DIV CSS字体(font-family)

DIV CSS字体(font-family)CSS font-family字体样式设置属性知识教程篇,CSS font-family-CSS字体样式知识教程。在网页中我们常常对网页中文字设置字体,我们即可使用font-family实现字体样式设置。此文关于使用CSS设置对象字体样式篇。从html的字体到css字体使用CSS教程。一、原始的html字体设置 - TOPHtml的文字字体设置...

weixin_33228769的博客 399

【matplotlib字体报错问题】findfont: Generic family ‘sans-serif‘ not found (win11)

在之前的博客中,有预告说会在之后的更新中结合具体代码来讲讲模糊系统,一月份有点小忙,计划将在下个月,也就是二月份的时候来把这个坑给填上咯。选中需要的字体,Ctrl+C,将字体复制到matplotlib的字体目录。如果不是你需要的那种字体,尝试从Windows系统中去找一下这种字体。如果以上两种方法仍然没有解决你的问题,那有可能你代码中使用的字体是第三方的字体库。很高兴,最近迎来了自己的第七个粉丝,同时也是我的第六个真人粉丝。找到matplotlib的字体目录,下面是我的目录,可以用作参考。

weixin_47603087的博客 7366

Win10下findfont: Font family [‘sans-serif‘] not found中文显示问题解决方法

在WIndows系统中,使用Matplotlib作图时,当图表的图例或坐标轴含有汉字时,经常会出现如下错误:findfont: Font family [‘sans-serif’] not found,这是SimHei字体文件未能正确配置导致的。 第一步:首先重新下载Simhei字体 官网网址:https://www.fontpalace.com/font-download/SimHei/ 百度网盘文件:链接https://pan.baidu.com/s/1wPghG4yQWMd8rewYkqDx3A 提取

weixin_45690427的博客 5466

win10浏览器 html乱码怎么解决,win10浏览器乱码如何解决_win10浏览器字体乱码修复方法...

作为用来显示在万维网或局域网等内的文字、图像及其他信息的win10浏览器,帮助用户完成了一些交互操作,可是有的用户在打开win10浏览器时字体全都是乱码的状况出现,那么win10浏览器乱码如何解决呢?下面小编就来和大家讲讲win10浏览器字体乱码修复方法。具体方法:一、首先我们先打开电脑里的浏览器,然后打开开发人员工具。如果是试用系统自带的edge,需要按住键盘上的f12键;二、我们用鼠标点击选择...

weixin_29151499的博客 811

php中字体样式的设置,CSS里字体样式怎么设置

在网页中我们常常对网页中文字设置字体,用font-family这个属性就可以对字体样式进行设置了。那么我们今天就来教大家从html的字体到css字体的设置方法。原始的html字体设置Html的文字字体设置代码:我是黑体字CSS字体设置CSS 字体属性单词font-familyCSS字体 css font-family使用方法:font-family:"设置字体名称";exp:CSS运用实例代码:....

weixin_39863759的博客 1246

css设置字体font-family表格接口_win10 下的VS code 前端程序员的一些参考设置,欢迎评论...

中文字体默认是宋体,比较难看,可以进 文件(F) > 首选项 > 设置 中设置. (ctrl +,)Editor: Font Family控制字体系列 Consolas, 'Courier New', Monospace修改为Editor: Font Family控制字体系列 Consolas, 'Courier New', Dengxian这样就简单地变成了等线字体,(前者monos...

weixin_39813574的博客 444

3步快速接入PingFangSC字体包:六字重中文排版的完整落地手册

设计师发来一版视觉稿,标题写着「苹方-简 中粗体」,可你手头的 Windows 电脑根本没有这套字体——系统随手替换一个替代字体,整个版面的气质立刻垮掉。PingFangSC 字体包就是为这类场景准备的:一个仓库集齐苹方-简六个字重,TTF 与 WOFF2 双格式,MIT 协议开源,clone 下来就能用,不用再去网上东拼西凑找字体文件。 ## 先把字体用起来:最快 3 步见到效果 别急着研究

gitblog_00968的博客 1027

mac html字体设置,Mac Win 网页字体显示方案

Mac在诞生的时候就把对字体处理尽可能接近原貌成为它很大的一个卖点,而在这些年亲身使用后,个人感觉Mac下的字体确实看起来比Win下舒服些,特别是在浏览网页时,字体比较“珠圆玉润”,可惜的是Mac目前并不是主流,大多数还是Win用户。所以即使你所使用是Mac,在设计仍然要记得平衡Win下的效果。Mac和Win的显示区别截了段文字做了个对比,很容易看得出来,字体显示起来是有很大的差别的。Mac下文字...

weixin_42510188的博客 1759

ES快速入门,一篇就懂!

Elastic Search 入门前言什么是搜索为什么常用数据库不适合做搜索什么是Lucene什么是Elastic SearchES核心概念ES使用正常启动索引​增删改查ES增加常见问题:ES删除ES查询欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的

qq1592的博客 9292

RS422test.rar_RS422测试keil_STM32 RS422_STM32 RS422_keil串口422

keil下编写的RS422串口调试工具,ARM为STM32f103re

上一篇: showModalDialog 跨域
下一篇: java项目技术选择方案
ayearlater
博客等级 码龄15年 2粉丝 62原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值