小编rip*_*her的帖子

使用 JSF 和 RichEditor 时如何避免跨站脚本 (XSS) 攻击

我在全 JSF 平台上使用 Rich Editor 作为用户输入文本框。我试图避免对此文本字段的 XSS 攻击。

要求是

  • 用户可以在文本框中输入任意字符,
  • 丰富的编辑器应显示非编码值,或者编辑器不应&lt;显示<,
  • 应避免跨站点脚本攻击 (XSS)。

所以问题是,由于我们必须正确显示值,所以我们输入escape=false了输出文本,但它随后变得容易受到 XSS 攻击。

我尝试使用 jsoup 来过滤 HTML 标签,但似乎输入会自动编码并且无法使用 jsoup 。

所以我的问题如下。

  1. 是否有更好的方法来避免富编辑器的 XSS 攻击escape=false
  2. 看起来文本输入在到达保存阶段时已被编码,因此我无法使用 jsoup 进行过滤。JSF 内部如何对文本值进行编码和解码。脚本什么时候可以运行?
  3. 如果在获取输入后恰好在内部编码,我是否需要担心 XSS 攻击?
  4. 另外,还有一个软件 Parse,它被用来拦截请求。这是一种常见的黑客工具吗?如何使用它来进行潜在的攻击以及如何在当前情况下避免这种攻击。具体来说,如果有人像该软件拦截正常请求那样拦截请求,会有什么区别吗?

java security xss jsf richedit

3
推荐指数
1
解决办法
4188
查看次数

如何创建和编写文件一个Java进程并从另一个进程读取而不会遇到读/写问题(Java/EE)

我的情况

我有一个进程,它执行FTP和另一个电子邮件的过程.

当我完成FTP时,我想通过电子邮件发送成功通知.因此,电子邮件进程正在监视新的文件pr配置文件以进入特定目录

FTP进程创建一个适合电子邮件进程的文件,该文件或多或少是属性文件中的电子邮件列表.

我面临的问题是我创建文件并编写它.电子邮件进程,用于检测新文件并在写入文件之前或之后读取该文件.因此它只访问空参数.虽然我可以在电子邮件处理过程中进行睡眠,但它不适用于所有情况,并且会阻碍已完成文件的其他人.

我可以使用什么来创建一个无法读取的属性文件,直到它完全写入 - 或创建一个带锁的属性文件,如果需要可以从另一个进程解锁.

我有什么选择?

到目前为止: - 我已经尝试使用apache commons配置setProperty它创建了相同的旧读/写访问问题 - 我创建了一个property = new属性并使用store方法来创建文件.即使这样,电子邮件流程也会在完全播放之前阅读

仅供参考:电子邮件流程具有WatchDirectory,并在创建新文件时读取.

java file-io multithreading file process

1
推荐指数
1
解决办法
717
查看次数

项目Euler#19 in Java(off by 1)

您将获得以下信息,但您可能更愿意为自己做一些研究.

1900年1月1日是星期一.三十天有九月,四月,六月和十一月.所有其他人都有三十一人,仅拯救二月,其中二十八,风雨无阻.在闰年,二十九岁.闰年可以被4整除,但除非可以被400整除,否则不是一个世纪.在二十世纪的第一个月(1901年1月1日至2000年12月31日),有多少个星期日下降?

我已经得到172,答案是171.我不确定可能是什么问题,我已经尝试了一切,我一直得到172.感谢您的帮助.

public static void main(String args[]){
    int year=1901;
    boolean isLeapYear=false;
    int totalSundays=0;
    int currentDay=1;//Starts on a Monday
    while(year<=2000){
        isLeapYear=false;
        if((year%4)==0){
            if((year%100)==0 && (year%400)==0){
                isLeapYear=true;
            } else if((year%100)==0 && (year%400)!=0){
                isLeapYear=false;
            } else {
                isLeapYear=true;
            }
        }
        System.out.println("The Year Is: "+year);
        System.out.println("*******************************");
        for(int month=1;month<=12;month++){
            System.out.println("The Month is: "+month+" currentDay is :  "+currentDay);
            if(currentDay==7){
                totalSundays++;
            }
            if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
            //January,March,May,July,August,October,December
                currentDay+=3;
            } else if(month==4 || month==6 || month==9 || month==11){ …
Run Code Online (Sandbox Code Playgroud)

java calendar

1
推荐指数
1
解决办法
2169
查看次数

标签 统计

java ×3

calendar ×1

file ×1

file-io ×1

jsf ×1

multithreading ×1

process ×1

richedit ×1

security ×1

xss ×1