草庐IT

政务安全

全部标签

java - 如何在没有同步方法的情况下从不同的线程安全地刷新缓冲区?

有多个线程,比如B、C和D,每个线程都以高频率将小数据包写入缓冲区。他们拥有自己的缓冲区,没有其他人可以写入它。写作必须尽可能快,我已经确定使用synchronized会使它慢得令人无法接受。缓冲区只是字节数组,以及第一个空闲元素的索引:byte[]buffer;intindex;publicvoidwrite(byte[]data){//somecheckingthatthebufferwon'toverflow...notimportantnowSystem.arraycopy(data,0,buffer,index,data.length);index+=data.length;

Java 安全测试

在Java中有自动安全测试这样的东西吗?如果是这样,它是如何实现的?它只是为尝试利用已知的服务器漏洞而编写的JUnit测试,还是它们以安全为中心的测试框架?作为一个segue,我也对这个OWASP安全测试框架感兴趣,但无法判断他们是在经典意义上使用“框架”(意味着要遵循的一组指南和程序),还是在软件上下文(他们实际提供自动化安全测试组件的地方)。感谢任何能为我阐明这一点的人! 最佳答案 不知道它是否正是您要找的东西,但是StephenColebourne(joda-time和future新标准java8日期时间API的作者)有一篇关

java - 毕竟 log4j 不是线程安全的吗?

(这是在SLES11、Java7、Tomcat6、log4j-1.2.16上)我们使用log4j将不同的内容写入不同的日志文件。我继承了这段代码,所以无论好坏,通用结构都暂时保留在这里。记录器将创建两个日志文件:main.log和stats.log。特定的统计消息通过单独的调用记录到两个记录器(您将在下面看到),并且一大堆其他内容记录到主日志。因此,在我们的所有代码中,您会看到类似Log.logMain(someMessageToLog);的内容。在我们的代码(由多个线程执行)的一个地方有以下内容:StringstatsMessage=createStatsMessage();Log.

java - 我如何找到验证我的 JDK 安全提供程序的加密强度?

我有这个小程序可以在我的JDK安装中打印出所有受支持的提供程序,但我想知道是否有人知道我可以如何更改此程序以打印出每个提供程序的“强度”?importjava.security.Provider;importjava.security.Security;publicclassSecurityListings{publicstaticvoidmain(String[]args){for(Providerprovider:Security.getProviders()){System.out.println("Provider:"+provider.getName());for(Provi

java - 共享异常实例是否安全

我们正在制作一个类似Excel的系统。当我们打开文档并发现不受支持的函数时,我们抛出异常。我们只支持一小部分excel函数,这可能会经常发生。问题是当有很多包含不受支持的函数的单元格时,会创建很多很多异常实例。创建那么多异常实例会消耗不可忽视的时间。我们在异常类中没有任何特殊属性。我们需要知道的是抛出异常的事实。我们刚刚发现错误发生并将单元格标记为错误。所以我们决定共享一个异常实例,并在需要时抛出它。异常实例可以由多个线程抛出。我怀疑堆栈跟踪可能已损坏,但是,我们没有看到它。我们只是捕获异常,并将相应的单元格标记为错误。我的问题是:在这种情况下,共享异常实例是否安全?好吧,我阅读了以下

java - servlet session ,注销后,按下浏览器的后退按钮时,再次显示安全页面

这个问题在这里已经有了答案:Preventuserfromseeingpreviouslyvisitedsecuredpageafterlogout(7个答案)关闭5年前。我有一个servlet和一个HTML页面。如何防止用户在注销后点击浏览器的后退按钮?我在stackoverflow中读过同样的问题,但答案是使用浏览器历史记录禁用java脚本或使用页面——在httpheader中没有缓存。我们如何使用阻止返回操作的servlet来实现它,没有缓存的http-header是无用的,因为Firefox表示页面在再次刷新两次时已过期显示安全页面。我已经在某种程度上做了,示例方法只是为了尝试

java - 如何对安全密码执行验证。 char[] 上的正则表达式?

这个问题是这里问题的后续问题:Whyischar[]preferredoverStringforpasswords?这个问题对于理解为什么使用char[]而不是String很好;但是,它没有解释如何以安全的方式对char[]执行密码验证。这就是我想知道的。简单来说,我需要检查密码是否满足以下要求:至少包含一个大写字母至少包含一个小写字母至少包含一个数字至少包含一个符号至少是n个字符,但不超过m现在我明白了如何使用正则表达式来执行验证......这些答案展示了如何做到这一点:RegexpJavaforpasswordvalidationPasswordmustbe8charactersi

java - 将 AWS Java SDK 客户端对象声明为静态以供并发使用是否安全?

使用AWSJavaSDK同时对多个请求使用相同的客户端对象是否安全。例如,如果我有一个Web服务器同时处理多个请求,并且一个或多个请求需要访问DynamoDB,那么使用静态访问器方法进行读写的静态客户端对象是否安全,例如publicclassDynamoDBManager{privatestaticAmazonDynamoDBClientclient=newAmazonDynamoDBClient(CREDENTIALS);publicstaticvoiddoRead(StringhashKey){//usetheclienttoread}publicstaticvoiddoWrite

java - 空安全 valueOf 方法

我需要将多个字符串值转换为整数、boolean值等,但是由于输入值可能为空,因此我无法使用Integer.valueOf()方法。如果输入为null我需要输出对象也为null,所以我不能使用apachecommonsNumberUtils.toInt().除了为每种类型(整数、boolean值等)编写一个实用方法之外,是否有现有的实现或更好的解决方案?编辑:添加代码示例StringmaxAgeStr=settings.get("maxAge");//settings是一张map,可以或//可能不包含maxAgeconstraints.setMaxAge(Integer.valueOf(

java - 类型安全 : Unchecked cast from List to List<String>

我有将结果转换到(List)的方法,但我的eclipse仍在提示!类型安全:未经检查的从列表到列表的转换@OverridepublicListgetDevices(LongproductId){StringqueryString="SELECTop.nameFROMt_operationopWHEREop.discriminator='ANDROID'andPRODUCT=:productId";try{Queryquery=getEntityManager().createQuery(queryString);query.setParameter("productId",produc