dkr*_*etz 22 wordpress session-management
我正在使用Wordpress建立一个网站,我想捎带它的会话.但我找不到任何插件,甚至文档.在我开始黑客攻击之前有任何建议或参考吗?
注意:我询问WP是否以及如何使用标准PHP会话本身,而不是如何使用session_start()添加PHP会话.显然任何WP所维持的状态都是通过其他方式完成的.因此,如果我想使用PHP会话,我需要完全自己添加和维护它,使用线程中的技术.
谢谢大家!
And*_*nko 17
修改WP Core文件以使用会话的能力是一个非常糟糕的主意.我发现的最好方法是调用session_start()from init动作钩子.
function kana_init_session() {
session_start();
}
add_action('init', 'kana_init_session', 1);
Run Code Online (Sandbox Code Playgroud)
您可以将其放在functions.php主题的文件中.
详细文章可以在这里找到:http://www.kanasolution.com/2011/01/session-variable-in-wordpress/
Ste*_*eve 15
WordPress似乎没有调用,session_start()因为它想要无状态,如果register_globals已定义,它会自动销毁你的$_SESSION
对于我需要做的事情,最好的答案包括:
我的cookies如下:
[wordpress_909bb230b32f5f0473202684d863b2e0] => mshaffer|1255298821|d0249fced9c323835c5bf7e84ad3ffea
[wordpress_logged_in_909bb230b32f5f0473202684d863b2e0] => mshaffer|1255298821|56e9c19541ecb596a1fa0995da935700
Run Code Online (Sandbox Code Playgroud)
使用PHP,我可以遍历cookie,解析key=>value对.这些cookie让我知道[mshaffer]有一个cookie存储在wordpress上,并且还被认证为logged_in.cookie的到期时间是1255298821.
在sub2中,我可以查询wordpress数据库并获取用户信息:
SELECT * FROM `wp_users` WHERE user_login = 'mshaffer' ...从此查询中获取user_id,user_email
SELECT * FROM `wp_usermeta` WHERE user_id = '$user_id' ... 从wp中获取大量其他数据
有了这些信息,我可以添加到我的sub2会话变量/ cookie并使用数据执行我想要的操作.我可以确定我是否已登录,以及我的用户名...这让我抓住了很多不同的数据.我现在可以在sub2.domain.com中使用WordPress身份验证并相应地重定向.
蒙特
{X:
使用Transient API存储的值对所有用户都可见,而不仅仅是当前用户,具体取决于用于检索瞬态的唯一标识符,您可以为每个用户分配一个唯一的标识符,从而导致瞬态行为与会话非常相似.
进一步考虑:
根据具有对象缓存等的用户设置,瞬态可能并不总是存储在DB中(例如,memcached),使用会话的瞬态可能意味着数据可能变得笨重并且快速填充内存(在使用memcached时).
此外,似乎WP不会对瞬态进行自动垃圾收集:https: //wordpress.stackexchange.com/questions/6602/are-transients-garbage-collected
| 归档时间: |
|
| 查看次数: |
44596 次 |
| 最近记录: |