2020-09-16 12:02

漏洞扫描工具,如果不扫点东西出来,它自己是很没面子的

专门做这一行业的公司与个人更是没面子。我在 2009 年时做过北科院一个政府项目,做完以后要拿到专门的一个机构去做这类漏洞检测的工作,人家很轻松就能给你弄出一堆报告来

最后,回到你碰到的这个问题,你需要让对方重现问题是发生的过程,然后你才好修复问题

站在 jfinal 的角度,jfinal 唯一向外提供的口子就是你手动添加路由以后开放的 action,所以是不可能发生你碰到的这种事:“似乎可以使用特制的URL读取Web服务器文档目录之外的远程主机上的任意文件”

然后是 undertow,这个我认为概率也不大,如果确实有,你得让对方给出具体的重现方法

2020-09-12 21:59

还有一个解决办法是,先找到以前用过的那些 cookie 的 name,然后用一个 jfinal 的全局拦截器,通过下面的代码删掉那些 cookie:
inv.getController().removeCookie(name);

2020-09-12 21:58

@rirai cookie 有一个过期时间,你这个网站的有些 cookie 的过期时间在几年以后,如果有人在你解决这个问题之前就访问过你的网站, cookie 会一直存在

cookie 是会随着每次请求一起发给你的服务端,异常就会一直有。这个时候已经与你的后端服务无关了,你的后端服务已经解决问题了

你得再观察几天,看是不是异常变少,如果访问者总是同一群人,异常会下降比较慢,如果后续是越来越多的新人访问,异常会逐步下降

2020-09-11 20:13

浏览下有关 ActiveRecordPlugin 的文档, 主要就是 new 的时候传点参,第一个参是 configName,该变量与数据源绑定对于 model 的使用,数据源是自动识别的

对于 Db.find/query 等 API 默认使用 "主数据源",使用别的数据源这样用:
Db.use(其它数据源/configName).find(...);

2020-09-11 20:11

关键是 AutoTableBindPlugin 这个里头不知道干了啥,这个不是 jfinal 官方提供的,jfinal 官方早就提供了生成器,自动生成 Model、BaseModel、MappingKit 等等, AutoTableBindPlugin 完全没有必要

回到具体问题,异常关键是:Config not found by configName: gps_db

这个异常出现在你代码中的地点在:OneMinutesJob.execute(OneMinutesJob.java:50)

上面这行代码的第 50 行,使用了 Db.use("gps_db"), 而这个 gps_db 根本就不存在

那么如何让这个东东存在呢? 很简单,在 new ActiveRecordPlugin 的时候,第一个参数就是了:
ActiveRecordPlugin arp = new ActiveRecordPlugin("gps_db", 其它参数在此);

最后,一定要先稍微看下文档,节省大量时间

2020-09-11 19:33

输出信息绝大部分是 INFO,并不是异常

只有一个是 WARN:
[Thread: XNIO-1 task-1]-[WARN]-[com.jfinal.core.ActionHandler.handle()]: 404 Action Not Found:

这个只是一个 404 ,url 不对而已,整体上没看出有任何问题

你将日志级别调整到 WARN,就不会输出 INFO 了

2020-09-11 10:16

要知道,业务有可能被很多地方调用,而要保障所有地方调用时都记得用上拦截器,这个是容易出问题的

所以,我所有项目全部在业务方法内用的 :
Db.tx () -> {
这里是数据库操作
});

2020-09-11 10:15

上面的用法不仅代码简单,而且可以在内部使用 try catch 灵活控制。 还可以避免你的业务在用到别的场景时忘了开启拦截器

2020-09-11 10:14

开启事务,我建议这么来用:
Db.tx () -> {
这里是数据库操作
});

2020-09-11 10:14

用 Aop.get(...) 即可,文档中都有

2020-09-11 10:13

Model 没有提供复制方法,如果你的 Model 中都是一些 Integer、String、Double、Date 等等之类的基本类型是可以直接使用 setter 方法实现复制功能的,因为这些基本类型不允许修改,是共享安全的

如果你的 Model 有还有 Map、List 等之类的有结构的属性,就需要自己写复制方法

2020-09-11 10:09

你的网站点击几次就自动创建了很多 cookie, 而且 cookie 的域名是 baidu.com 以及 hm.baidu.com

异常提示是不能超过 200 个 cookie,随着时间的推移,cookie 数量会不断增加,你为啥要用这么多 cookie ?

如下是我随手复制的你网站产生的 cookie:



DRCVFR[dG2JNJb_ajR] mk3SLVN4HKm .baidu.com / Session 31 Medium HMVT 64ecd82404c51e03dc91cb9e8c025574|1599745820| .hm.baidu.com / Session 48 Medium __yjsv5_shitong 1.0_7_09060afb5ce9ef23d8ae8f48ec71e0079e23_300_1599745819959_175.0.57.242_ecc6cfb9 .baidu.com / 2020-09-12T13:50:19.000Z 97 Medium PSINO 7 .baidu.com / Session 6 Medium BDRCVFR[S4-dAuiWMmn] I67x6TjHwwYf0 .baidu.com / Session 33 Medium BDRCVFR[fb3VbsUruOn] rJZwba6_rOCfAF9pywd .baidu.com / Session 39 Medium ZD_ENTRY baidu .baidu.com / Session 13 Medium H_BDCLCKID_SF JRkOVI0-tIvDqTrP-trf5DCShUFsK-viB2Q-XPoO3KOoenkCK4PaLU0JXhrO--biWbRM2MbgylRp8P3y0bb2DUA1y4vpWjKDQ2TxoUJ23UokORQsqqQtqqkebPRiJPb9Qg-qahQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0MD09e5tKD5PVKgTa54cbb4o2WbCQWxnh8pcN2b5oQTtebU4qbt4D0a732PTybb3vOIJTXpOUWfAkXpJvQnJjt2JxaqRCBDLaSp5jDh3MQhDpyxjrelohHGby0hvctn3cShPCyUjrDRLbXU6BK5vPbNcZ0l8K3l02V-bIe-t2XjQhjHtOqT-Htn3aQ5rtKRTffjrnhPF3WMRbXP6-hnjy3b7y0bkK-JAaEp5dXbrW5P-UyN3MWh3RymJ42-39LPO2hpRjyxv4X65L3PoxJpOJ3NrZaJQ1HxjtKfnvbURvD--g3-AqBM5dtjTO2bc_5KnlfMQ_bf--QfbQ0hOhqP-jBRIE_C0yfI0KhKvPKITD-tFO5eT22-us-57l2hcHMPoosIOvbP4-K4RLLPb3WncObKviaKJjBMbUoqRHXnJi0btQDPvxBf7pBJFD-h5TtUJMsMo_y4jdqq_EqJ7yKMnitIv9-pPKWhQrh459XP68bTkA5bjZKxtq3mkjbPbDfn028DKuDjLKD5b3DaRf-b-XbIOyLb5VHJOoDDv6hxbcy4LdjG5x0nOJHRvHbKJn3RndVtb4DxRvblFS3-AqKjJGaKFq-t3tKCD2VqAl2JQkQfbQ0hOhqP-jW5IL-Dok3R7JOpvshfnxyb8UQRPH-Rv92DQMVU52QqcqEIQHQT3m5-5bbN3ut6T2-DA__C-MtD3P .baidu.com / Session 889 Medium BDORZ B490B5EBF6F3CD402E515D22BCDA1598 .baidu.com / 2020-09-12T02:04:55.880Z 37 Medium delPer 0 .baidu.com / Session 7 Medium BDSFRCVID wnCOJeC62GDpt-7rS0CEhLQtr2KKfYcTH6f3Bof6Vwba10QO1yqJEG0Ptf8g0Ku-V2NEogKKLmOTHpKF_2uxOjjg8UtVJeC6EG0Ptf8g0M5 .baidu.com / Session 116 Medium H_PS_PSSID 7540_32606_1437_7546_31660_7611_7625_32117_26350 .baidu.com / Session 58 Medium MCITY -158%3A .baidu.com / 2050-09-10T02:30:04.154Z 12 Medium BIDUPSID 6AEF3EE8528CF9CCAEFCF7A57A4D150E .baidu.com / 2052-07-08T16:22:28.000Z 40 Medium PSTM 1594916429 .baidu.com / 2088-08-03T19:34:36.936Z 14 Medium BAIDUID E12E761325CB6E7A226E2D12E62B1674:SL=0:NR=10:FG=1 .baidu.com / 2050-07-23T13:29:12.000Z 55 Medium HMACCOUNT_BFESS DBF41E2E1085D592 .hm.baidu.com / 2038-01-18T00:00:00.743Z 31 ✓ None Medium HMACCOUNT DBF41E2E1085D592 .hm.baidu.com / 2038-01-18T00:00:00.743Z 25 Medium
mk3SLVN4HKm

2020-09-11 09:51

SpringServletContainerInitializer 是否需要一个注册机制? 例如像 Servlet 一样在 web.xml 中的注册

2020-09-10 17:12

获取方式是 : getFile() 或者 getFiles()

你用的是哪个版本 jfinal ?

2020-09-10 11:47

@李通 "解决办法是开发基于 JVM 的动态语言",这个并不是在解决 JVM 的热加载,是另一种动态语言