只是想知道通过调用返回的userId是否user.getUserId()应被视为机密,还是可以在公共URL中使用?例如,配置文件页面网址类似于http://example.com/userprofile/11901930903930,其中11901930903930是Google在Appengine上生成的userId.
这是我们用来获取userId的函数:
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
String id = user.getUserId();
Run Code Online (Sandbox Code Playgroud) 所以我理解有证据表明MD5不能保证唯一性,因为宇宙中的字符串多于MD5哈希字符串,但是对于有限数量的字符串是否有任何反证明?
基本上,如果我有最大长度为X的字符串,是否有一个X保证MD5是唯一的?如果是,那那X是什么?如果X的值不止一个,那么X的最大值是多少?
或者是否有任何其他散列算法,SHA-1等的X?
当我在appengine开发服务器上访问这样的jsp页面时:
本地主机:8888/index.jsp的/
它在浏览器中显示index.jsp的源代码.如果您在没有尾部斜杠(即index.jsp)的情况下访问它然后呈现jsp但是使用尾部斜杠(即index.jsp /)它会显示源代码
知道为什么会这样吗?以及如何解决它?
它似乎只发生在开发服务器而不是生产中.生产给出404 Not Found错误,这很好.
我使用的是SDK 1.6.4
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>RegisterPage</servlet-name>
<jsp-file>/register.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>RegisterPage</servlet-name>
<url-pattern>/signup</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Run Code Online (Sandbox Code Playgroud)
==========
所以...
index.jsp - >渲染页面
index.jsp/ - >返回源代码
register.jsp/ - >返回源代码
register.jsp - >渲染jsp
注册/ - >渲染register.jsp
注册 - >渲染register.jsp
所以它似乎是带有*.jsp /的问题的网址