小编Noo*_*z42的帖子

来自同一台机器的GET和POST请求可以来自不同的IP吗?

我很确定我记得读过 - 但是找不到链接了 - 关于这个:在一些ISP(包括美国至少一个大型ISP)上,有可能让用户的GET和POST请求出现来自不同的IP.

(请注意,这完全与编程有关,我将在下面举例说明)

不是说你的IP地址在两个请求之间动态变化.

我在说这个:

IP 1:  123.45.67.89
IP 2:  101.22.33.44
Run Code Online (Sandbox Code Playgroud)

相同的用户发出GET,那么一个帖子,然后再得到,然后再次发布和服务器看到这一点:

- GET  from IP 1
- POST from IP 2
- GET  from IP 1
- POST from IP 2
Run Code Online (Sandbox Code Playgroud)

因此,尽管它是同一个用户,但Web服务器会看到GET和POST的不同IP.

肯定看到HTTP是无状态协议,这是完全合法的吗?

我想找回关于某些ISP如何/为什么配置其网络以便可能发生这种情况的解释.

我问,因为有人要求我实施以下IP过滤器,我很确定它是从根本上破坏了代码(破坏了至少一个主要的美国ISP用户的破坏).

这是一个Java servlet过滤器,可以防止某些攻击.原因是:

" 对于任何会话过滤器检查请求中的IP地址是否与创建会话时使用的相同.因此,在这种情况下,会话ID不能被盗用于形成虚假会话."

http://www.servletsuite.com/servlets/protectsessionsflt.htm

但是我很确定这本身就是破坏的,因为有些ISP可能会看到来自不同IP的GET和POST.

ip http-get http-post

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

Java webapp:如何实现Web bug(1x1像素)?

在下面问题的接受答案中,一个具有13K + rep的SO常规建议使用"web bug"(不可缓存的1x1 img)来跟踪日志中的请求:

Google Analytics是否准确?

我怎么能用Java做到这一点?

基本上,我有两个问题:

  • 如何确保1x1图像不可缓存(如何设置标题)?

  • 如何确保这些1x1图像的查询将出现在日志中?

我正在寻找确切的代码段,因为我知道如何编写.jsp/servlet,我知道如何提供1x1图像:)

我的问题实际上是关于我应该写的确切的.jsp/servlet以及如何/需要做什么以便Tomcat记录请求.

例如,我打算使用以下映射:

<servlet-mapping>
        <servlet-name>WebBugServlet</servlet-name>
        <url-pattern>/webbug*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

然后使用引用"webbug.png"(或.gif)的img标记,那么如何编写.jsp/servlet?

我应该在日志中查找什么/在哪里?

java web-applications header

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

在哪个编码是0xDB货币符号?

我收到了文件,遗憾的是,我无法获得有关它们是如何生成的信息.我需要解析这些文件.

除了一个字符外,该文件完全是ASCII:0xDB(十进制表示219).

显然(从查看文件)这个字符是货币符号.我知道因为:

  • 这些文件必须在金额出现的任何地方包含货币符号
  • 文件中没有其他货币符号(既不是$也不是欧元,也不是任何东西)
  • 每当0xDB出现时它就在金额旁边

认为在这些文件中,0xDB应该代表欧元符号(实际上非​​常有可能这个0xDB出现在欧洲符号应该出现的所有地方).

文件的命令说,这有关文件:

ISO-8859 English text, with CRLF, LF line terminators
Run Code Online (Sandbox Code Playgroud)

一个hexdump都给出了这样的:

00000030  71 75 61 6e 74 20 db 32  2e 36 30 0a 20 41 49 4d  |quant .2.60. AIM|
                            ^^                                     ^
Run Code Online (Sandbox Code Playgroud)

这些文件通常都是通常格式化/可解析的.实际上我除了那个奇怪的0xDB字符外,还得到了所有的信息.

有谁知道发生了什么?货币符号(据说欧元符号)是如何成为0xDB的?

它既不是ISO-8859-1(又名ISO Latin 1)也不是ISO-8859-15,因为在这两种情况下代码点219对应于'Û'(正如Unicode代码点219是'具有CIRCUMFLEX'的LATIN CAPITAL LETTER U').

它不是扩展ASCII.

ascii character-encoding non-ascii-characters euro

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

是否所有Java SE 1.5+ VM都支持MacRoman编码?

感谢回答的人,我意识到我确实在处理"MacRoman"中编码的文件:

在哪个编码是0xDB货币符号?

所以我想知道:lib / charsets.jar中包含的字符集是否保证存在于所有1.5个JVM中?

http://download.oracle.com/javase/1.5.0/docs/guide/intl/encoding.doc.html

与UTF-8不同,x-MacRoman不存在于rt.jar中,而是存在于lib/charsets.jar中.我不太了解这种差异.

MacRoman,就像UTF8一样,保证在场吗?

PS:有人可以创建MacRoman标签会很棒.

java utf-8 character-encoding mac-roman

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

访问和编码属性文件

我习惯使用属性文件,例如Ant.在哪里我可以简单地引用属性文件做类似的事情:

<property file="webapp_DO_NOT_COMMIT.properties"/>
Run Code Online (Sandbox Code Playgroud)

(该文件之所以如此命名是因为我们的DVCS配置为永远不会提交包含"DO_NOT_COMMIT"的文件以防止提交凭证/密码/等.)

这是一个非常简单的.properties文件示例:

passwd=brokencleartextpassword
Run Code Online (Sandbox Code Playgroud)

现在我想将一些配置放在我需要从我的Java代码访问的另一个类似的属性文件中.我该怎么办呢?

我还有另一个相关问题:是由任何规范定义的.properties文件的字符编码吗?

java properties

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

Java JSP/Servlet:如何自动提供.dmg或.exe文件?

根据用户用于连接Java Webapp的操作系统/浏览器,自动提供.dmg或.exe文件的正确方法是什么?

我想在服务器端做,而不必使用任何JavaScript.

例如,如果,从OS X光机,我去:绝对扑克,然后点击"下载和播放"(这只是一个网站,有我在寻找的行为的一个例子),它提供了我的.dmg文件这是Safari自动下载的.

我正在寻找一个实用的解决方案:如果它适用于99%的用户,我很高兴.我不在乎,如果一些非常具体的操作系统/浏览器组合,这是行不通的,只要"大部分时间" Windows用户被送达的.exe和OS X用户的.dmg.

java servlets web-applications

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