如何正确地打日志
在程序中打日志很简单,logger.debug("Hello, Happy World!")
,OK。可是,正确地打日志并不简单,需要注意以下几个问题。
如果Web系统需要调用特定ActiveX控件才能操作,像身份证阅读器、读卡器、获取电脑网卡MAC地址等,而且预计控件厂商在一段时间内无法解决浏览器兼容性问题,那我们能不能想法让用户在非IE浏览器中也能调用控件呢?
本文提出一种解决思路:开发一个“控件小助手”代理程序。该程序安装在用户电脑中,负责调用ActiveX控件,并在本地建立一个简易Web Server,而业务系统相关页面则通过Ajax(备注:实际是JSONP)调用代理接口,从而间接地与控件交互。
本文继续以“学生信息管理系统”为例,讲述信息录入表单设计与开发中的一些问题。
对于行业系统来说,如果开发人员水平一般,而且又忙于赶工期,Web安全问题就很容易抛到脑后。然而,在这类系统中,用户输入内容往往是业务相关的,范围可以预测,不会特意输入敏感词语,因此又可以用简单粗暴的方法挡住大部分常见攻击。
在Java应用中,页面加载之前会先经过过滤器(Filter),我们便可以设置一个安全过滤器SecurityFilter,以“宁可错杀一万,不可放过一个”的方式拦截常见攻击,满足基本的安全需求。
道理大家都懂,其中的坑大家却不一定都清楚。
在中国,使用盗版软件已经是习以为常的事情。即使你去公安局自首,说自己电脑上装了一堆破解版,警察叔叔也不会把你抓起来,只会把你轰回家。但是请注意,给公司工作就是另一码事了——律师函警告!
希望借本文给大家提个醒,挣钱不易,务必小心!
除了在IDEA手工配置项目,也可考虑将传统Web项目转为Gradle项目,以便简化项目依赖管理、实现标准化构建等,也便于后续结合Jenkins等进一步实现自动化。
非功能性需求不会给项目带来收益,然而非功能性需求不仅要在需求阶段考虑好,而且在设计与开发过程中也要多加留意,否则都会成为项目的坑……
本文以一个政府的Web应用项目为例,讨论一些容易遗忘的非功能性需求。
微信机器人是一个比较难搞的东西,因为微信登录比较麻烦,而且官方不仅不提供API,还积极封杀机器人和“非法登录”的途径,导致研发风险较大。目前比较成熟的两种方式是模拟微信网页版以及程序控制微信PC版应用。
本文采用Puppeteer框架,借助真实的浏览器访问微信网页版,模拟浏览器的正常操作,以降低被封杀的风险。
为甲方升级系统时,堡垒机应用服务器正常,唯独FTP出现故障,无法上传程序包(堡垒机软件不支持直接向Linux服务器传文件)。在为无法完成部署任务发愁时,我们发现借助专用VPN可以直连甲方的Oracle数据库,并以DBA身份登录,于是我们临时编写了一款“基于Oracle的文件传输工具”。
Puppeteer是Google搞的爬虫框架,其特点就是我们可以直接通过程序来操作Google浏览器(服务器没装图形界面也没关系,这个Google浏览器不需要图形界面)。通过这个框架,我们就可以像正常使用浏览器一样爬网站,并且像进控制台那样操作页面获取信息,甚至还可以截图。只要网站不使用验证码或reCAPTCHA之类的大杀器,而且运营者不希望正常使用浏览器的用户也无法访问页面,那么我们就可以随便扒网站了。例如本文从https://tw.manhuagui.com网站扒漫画。