重定向到 URI 发回浏览器 URL 栏中添加的 POSTed 参数
Redirect to URI sends back the POSTed params added in browser's URL bar
Grails 版本:3.3.4,
Groovy版本:2.4.14,
JVM 版本:1.8.0_161,
Ubuntu 14.04
我写了一个简单的认证表(最后会通过https发布):
<form action='auth' method='POST' id='loginForm' class='cssform' autocomplete='off'>
<p>
<label for='j_username'>Login ID</label>
<input type='text' class='text_' name='j_username' id='j_username' />
</p>
<p>
<label for='j_password'>Password</label>
<input type='password' class='text_' name='j_password' id='j_password' />
</p>
<p>
<input type='submit' value='Login' />
</p>
控制器是:
class LoginController {
def index() {
if (session.user?.name == 'test') {
render view: '/login/youarealreadyin'
}
else {
render view: '/login/auth'
}
}
def auth() {
def loginName = params.j_username?.trim()
def pass = params.j_password?.trim()
if (loginName == 'test' && pass == 'TEST' ) {
session.user = [name: loginName]
redirect uri: '/'
}
else {
render view: '/login/denied'
}
}
}
正确登录并重定向到 uri 后:'/' - 我在浏览器的 URL 字段中看到名称和密码:
http://localhost:8080/?j_username=test&j_password=TEST
我可以发誓这在第一个版本的 grails 3 中没有发生...我不记得是什么时候...
最好不要在 URL 中将 POSTed 密码作为 GET 参数发回。
如果我渲染特定视图而不是重定向它不会发生。
如果您将此报告为不良行为,我们的 GitHub 问题跟踪器 https://github.com/grails/grails-core/issues is a better place to do that. This has already been reported though at https://github.com/grails/grails-core/issues/10965 看起来修复已在 3.3.5.BUILD-SNAPSHOT 中得到验证并且看起来不错.
如果您只是想问这是否是预期行为,那不是。
Grails 版本:3.3.4, Groovy版本:2.4.14, JVM 版本:1.8.0_161, Ubuntu 14.04
我写了一个简单的认证表(最后会通过https发布):
<form action='auth' method='POST' id='loginForm' class='cssform' autocomplete='off'>
<p>
<label for='j_username'>Login ID</label>
<input type='text' class='text_' name='j_username' id='j_username' />
</p>
<p>
<label for='j_password'>Password</label>
<input type='password' class='text_' name='j_password' id='j_password' />
</p>
<p>
<input type='submit' value='Login' />
</p>
控制器是:
class LoginController {
def index() {
if (session.user?.name == 'test') {
render view: '/login/youarealreadyin'
}
else {
render view: '/login/auth'
}
}
def auth() {
def loginName = params.j_username?.trim()
def pass = params.j_password?.trim()
if (loginName == 'test' && pass == 'TEST' ) {
session.user = [name: loginName]
redirect uri: '/'
}
else {
render view: '/login/denied'
}
}
}
正确登录并重定向到 uri 后:'/' - 我在浏览器的 URL 字段中看到名称和密码:
http://localhost:8080/?j_username=test&j_password=TEST
我可以发誓这在第一个版本的 grails 3 中没有发生...我不记得是什么时候...
最好不要在 URL 中将 POSTed 密码作为 GET 参数发回。
如果我渲染特定视图而不是重定向它不会发生。
如果您将此报告为不良行为,我们的 GitHub 问题跟踪器 https://github.com/grails/grails-core/issues is a better place to do that. This has already been reported though at https://github.com/grails/grails-core/issues/10965 看起来修复已在 3.3.5.BUILD-SNAPSHOT 中得到验证并且看起来不错.
如果您只是想问这是否是预期行为,那不是。