标签: session-variables

这段代码安全吗?

<?php
session_start();

include("connect.php");

$timeout = 60 * 30;
$fingerprint = md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

if(isset($_POST['userName']))
{
    $user = mysql_real_escape_string($_POST['userName']);
    $password = mysql_real_escape_string($_POST['password']);
    $matchingUser = mysql_query("SELECT * FROM `users` WHERE username='$user' AND password=MD5('$password') LIMIT 1");
    if (mysql_num_rows($matchingUser))
    {
        if($matchingUser['inactive'] == 1)//Checks if the inactive field of the user is set to one
        {
            $error = "Your e-mail Id has not been verified. Check your mail to verify your e-mail Id. However you'll be logged in to site with less privileges.";
            $_SESSION['inactive'] = …
Run Code Online (Sandbox Code Playgroud)

php security session login session-variables

6
推荐指数
1
解决办法
823
查看次数

解决会话变量的问题

我的网站上有一个用于邀请朋友的表单.这是一个简单的文本字段和一个提交按钮.如果有错误,我会重定向回此页面并显示错误消息(如果它们是会话变量集).

if (isset($_SESSION['invite_error'])) {
   echo $_SESSION['invite_error'];
   unset($_SESSION['invite_error']);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我离开此页面并返回到该页面,则仍会显示错误消息.如果我离开并再次回来,它将会完成.当我刷新那个页面时它是一样的... 1刷新不会摆脱它,但2会.我不能破坏整个会话,我只是想取消设置这个变量.PHP版本是5.2.5 build 6,注册全局变量是关闭的,我在这个页面的顶部调用了session_start(),我也尝试过使用no-cache标头.

编辑:添加完整代码.

<?php 
ob_start();
session_start();

$user_id = $_SESSION['user_id'];
$user_name = $_SESSION['user_name'];

if ($user_id==null) header("Location: /login.php");

if (isset($_SESSION['invite_errors'])) {

    $error = $_SESSION['invite_errors'];
    unset($_SESSION['invite_errors']);

}

require_once("ui/header.php");
?>



<div id="invite" class="content">

    <?php if($error) { ?>
        <div class="errors round">
            <?php echo $error ?>
        </div>
    <?php } ?>

    <h3>Invite Your Friends</h3>

    <div class="invite-form">
        <form method="post" action="controllers/invite.php">
            <div class="row">
                <textarea class="txt-area" name="emails" id="emails" rows="5"></textarea>
                <div class="tip">Separate multiple email addresses with ,</div>
            </div>
            <div class="row-submit">
                <input …
Run Code Online (Sandbox Code Playgroud)

php session session-variables

6
推荐指数
2
解决办法
4万
查看次数

asp.net中强类型的会话

如果这个问题已被提出,请原谅我.HttpContext.Current.Session["key"]返回一个对象,我们必须Type先将它强制转换为该对象才能使用它.我正在研究类型会话的各种实现

http://www.codeproject.com/KB/aspnet/typedsessionstate.aspx http://weblogs.asp.net/cstewart/archive/2008/01/09/strongly-typed-session-in-asp-net.aspx http://geekswithblogs.net/dlussier/archive/2007/12/24/117961.aspx

如果我们想要将一个新Type的对象添加到会话中,或者作为一个方法或一个单独的包装器,我觉得我们需要在SessionManager中添加一些代码(如果我错了,请更正).我以为我们可以使用泛型

public static class SessionManager<T> where T:class
 {
  public void SetSession(string key,object objToStore)
  {
   HttpContext.Current.Session[key] = objToStore;
  }

  public T GetSession(string key)
  {
   return HttpContext.Current.Session[key] as T;
  }

 }
Run Code Online (Sandbox Code Playgroud)
  • 使用是否有任何固有的优势

    SessionManager<ClassType>.GetSession("sessionString")

而不是使用

HttpContext.Current.Session["sessionString"] as ClassType
Run Code Online (Sandbox Code Playgroud)
  • 我也觉得有类似的东西会很好

SessionManager["sessionString"] = objToStoreInSession,但发现静态类不能有索引器.有没有其他方法来实现这一目标?

  • 我的想法是创建一个SessionObject,它将存储Type和对象,然后使用密钥将此对象添加到Session(使用SessionManager).检索时,将所有对象强制转换为SessionObject,获取类型(比方说t)和对象(比如说obj)并转换objt并返回它.

    public class SessionObject { public Type type {get;set;} public Object obj{get;set;}
    }

这不会起作用(因为返回签名将是相同的,但返回类型将是不同的).

是否有任何其他优雅的方式以更安全的方式在会话中保存/检索对象

asp.net session session-variables session-state

6
推荐指数
1
解决办法
4287
查看次数

如何在当前范围内转储所有PHP变量?

我需要这个用于调试目的,需要转储所有变量.有没有办法获得所有变量?并且有没有办法在脚本结束后跟踪所有调用?没有改变我的代码.请注意,我不能使用xdebug或任何可安装的,因为我的脚本在主机上运行.

php variables debugging session-variables

6
推荐指数
2
解决办法
4496
查看次数

如何在模型asp.net mvc中访问会话

如何从模型访问会话?

我尝试使用:

public IQueryable<EstudentsViewModel> GetEstudentsProjected(decimal? Code)
        {
           .
           .   
           .
           decimal id;
           id = (decimal)Session["Consul"];
           .
           .
           .
        }
Run Code Online (Sandbox Code Playgroud)

出现:当前上下文中不存在名称"会话"

session-variables asp.net-mvc-3

6
推荐指数
1
解决办法
1万
查看次数

如何在Ruby on Rails 3.2.8中保存LocalStorage上的数据?

我正在尝试保存一个名为的变量persistent_data.

我通常使用session[:persistent_data]cookies[:persistent_data],但我想使用localstorage代替.

我如何在Rails上做到这一点?

ruby html5 ruby-on-rails session-variables local-storage

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

IIS7会话失去了它的价值

我已经将挑战响应方案实现为Ajax处理程序.出于某种原因,它在工作几个月后停止工作.调查问题表明,Context.Session[KEY]在挑战和响应呼叫之间失去了价值.

我把Session_StartSession_End(和其他几个)在Global.asax.cs中的方法与一些记录那里,我看到一个新的在session_start事件与相同的会话ID解雇,没有Session_End中的事件

问题是:为什么IIS会丢失会话值?

更新:我尝试切换到SQLServer会话,但行为没有变化.在极少数情况下,会话按预期工作,不确定原因.我尝试了所有"会话丢失变量"故障排除指南我发现无效

更新2:我将问题缩小到缺少会话cookie,但修改my.browsers配置后几次尝试都没有解决问题.当我从浏览器调用ajax处理程序时,会话cookie"ASP.NetSessionId"按预期显示.我将站点和服务器的IIS设置中的cookie名称更改为"SessionId",但即使重新启动服务器,我仍然看到ASP.NET.我仍然想把这个赏金给予那些知道发生了什么的人.同时我通过在代码中设置会话cookie来解决这个问题.

Login.ashx的伪代码:

string login = GetParameter("login", context);
string passhash = GetParameter("pass", context);
string challenge = "" + Context.Session["CHALLENGE"];
if (!string.IsNullOrEmpty(challenge))
{
  // this is the 'response' part
  string challengeResponse = Crypto.GetChallengeResponse(Challenge, UserFromDB.PassHash);
  if (challengeResponse == passhash)
  {
    // Great success, challenge matches the response
    Log.I("Success");
    return "SUCCESS";
  }
  else
  {
    Log.W("Failed to respond");
    return "FAILED TO RESPOND";
  }
}
else
{
  // if passed login or session-stored challenge are empty …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-ajax session-variables

6
推荐指数
1
解决办法
2245
查看次数

Spring MVC - HttpSession.setAttribute和model.addObject之间的区别

我最近正在努力学习Spring MVC.似乎我不太了解@ModelAttribute注释和HttpSession的功能.

@SessionAttributes({"shoppingCart", "count"})
public class ItemController {

@ModelAttribute("shoppingCart")
public List<Item> createShoppingCart() {
    return new ArrayList<Item>();
}

@ModelAttribute("count")
public Integer createCount() {
    return 0;
}

@RequestMapping(value="/addToCart/{itemId}", method=RequestMethod.GET)
public ModelAndView addToCart(@PathVariable("itemId") Item item, 
        @ModelAttribute("shoppingCart") List<Item> shoppingCart, @ModelAttribute("count") Integer count) {

    if(item != null) {
        shoppingCart.add(item);
        count = count + 1;
    }

    return new ModelAndView(new RedirectView("showAllItems")).addObject("count", count);
}

@RequestMapping(value="/deleteFromCart/{itemId}", method=RequestMethod.GET)
public ModelAndView deleteFromCart(@PathVariable("itemId") Item item, 
        HttpSession session) {

    List<Item> list = (List<Item>) session.getAttribute("shoppingCart");
    list.remove(item);
    //session.setAttribute("shoppingCart", list);

    Integer count = (Integer) session.getAttribute("count");
    count …
Run Code Online (Sandbox Code Playgroud)

spring session-variables spring-mvc httpsession modelattribute

6
推荐指数
1
解决办法
1万
查看次数

在C#中更新对象时会话对象发生更改

我有这个非常奇怪的问题,我确信我在这里遗漏了一些明显的东西.我有这两行:

HttpContext.Current.Session[listModelType + "ListModel"] = listModel;
listModel.ProductRows = new Collection<ProductRow>(listModel.ProductRows.Where(r => r.ParentRowId == 0).ToList());
Run Code Online (Sandbox Code Playgroud)

执行第二行后,我的会话对象也会更新(根据Visual Studio中的"Watch")

我在这里错过了什么?

我试过了

int i = 0;
HttpContext.Current.Session["i"] = i;
i++;
Run Code Online (Sandbox Code Playgroud)

和HttpContext.Current.Session ["i"]保持为0.

.net c# asp.net session session-variables

6
推荐指数
1
解决办法
6464
查看次数

将会话变量从页面传递到页面

我想知道使用asp.net会话将变量从页面传递到页面的问题是什么.

我已经将代码删除到只有一个文本框,以查看最新情况.我只是想获取文本框的值并将其显示在确认页面上.单击该按钮时,它会将我转移到第二页,但标签为空白.是的,我的帖子后面的网址指向第二页.

这是按钮点击:

protected void submit_Click(object sender, EventArgs e)
{
    string name = txtFirstName.Text.Trim();
    Session["name"] = name;
}
Run Code Online (Sandbox Code Playgroud)

这是第二页的页面加载:

protected void Page_Load(object sender, EventArgs e)
{
    lblName.Text = (string)(Session["name"]);
}
Run Code Online (Sandbox Code Playgroud)

除非我一直在看这个并且错过了什么.我已经从MSDN上阅读了"如何:从会话状态中读取值".

c# asp.net session-variables

6
推荐指数
1
解决办法
7万
查看次数