我试图创建一个管理区域但无法使登录系统工作.我有三个部分.login.cfm页面,login_action.cfm和app.cfc.
使用此代码时,尝试登录它只会停留在同一页面上.
Login.cfm
Login_action.cfm
select * from t_admin where username = '#username#' select * from t_admin where email = '#cookie.XXX.email#'
和Application.cfc.
如果有人能帮助那将是非常感谢
这段代码中有很多根本性的错误.
不要使用来自浏览器的查询字符串构建URL.您无法信任来自浏览器的任何内容,因此您不得在不擦除任何内容的情况下使用任何内容.这样的事情都在惹麻烦:
<cfset FormAction = "#CGI.SCRIPT_NAME#?#CGI.QUERY_STRING#">
通常,在没有正确清理和 HTML编码的情况下,不要向用户的页面HTML写任何内容.使用HTMLEditFormat()
和URLEncodedFormat()
广泛.
不要永远使用用户提供的值来构建SQL字符串.有<cfqueryparam>
,使用它.这是坏事和错误:
select * from t_admin where username = '#username#'
我们在这里:不要select *
在生产代码中使用.
不要将纯文本密码存储在数据库中.这是一件大事,你必须在做其他任何事情之前解决这个问题.ColdFusion提供了许多散列算法,使用它们(并阅读盐腌哈希).
登录表单是通过HTTPS发送的吗?(该应用程序中的所有内容都应该是HTTPS,但绝对必须是登录表单.)
登录cookie应标记为secure
和httponly
(请参阅)以防止会话劫持.
登录过期的cookie永远不是一个好主意.要看.