我有一个关于PHP中会话劫持的问题.我今天早上一直在阅读这篇文章,我有一些问题在我阅读的文档中没有得到明确解答.
用户可以在我的网站上更改会话吗?即如果他们在登录时有X会话,他们是否可以将该会话更改为Y或Z,如果他们选择的话?
我认为这些会话是由浏览器设置的,并且它们无法更改,但所有这些会话劫持我一直在阅读的内容都让我产生了一些疑问.
我用自己的PHP编写了自定义论坛脚本.我决定不使用phpbb和其他人,因为我希望我正在做的事情具有100%的灵活性.
我遇到了一个问题:
如果帖子是新的/未读的,如何向用户显示.
我想到了两个解决方案:
1)Cookies 2)数据库
我不想使用cookie,因为它们可以被用户删除,而firefox方面的东西意味着它们会被自动删除.无论哪种方式,我都不想使用cookies.
数据库导致我出现问题,因为我似乎无法将数据库结构排在脑后!我能想到的第一个解决方案是:
我正在考虑的问题是它是一个巨大的数据库流失.它似乎效率低下.我确定在字段中有数组的方法,但我对数组的确不太好.
任何人都可以给我一个良好的数据库设计的指示,以及任何必须与它一起使用的代码吗?它让我发疯,因为我无法想到一个对服务器来说效率高效的解决方案.
非常感谢您的帮助和帮助,
詹姆士.
以前曾经问过这个问题,但我需要100%明确这个问题,因为这对我来说非常重要.
情况:网站上的消息系统.用户在文本框中输入消息,他们提交表单并将其输入数据库.然后,可以从数据库调用此数据,并在<span>
标签内显示给另一个用户.
我需要采取哪些安全措施来防止此数据被恶意攻击?我已经使用mysql_real_escape_string来停止任何注入,而strip_tags看起来很有用,但我听说过很多其他名字.考虑到它仅显示在<span>
标签中,我需要使用什么来保护这些数据?
谢谢.
我正在使用asp/c#构建一个网站,我需要将其部署到由外部人员管理的多个服务器上.
我需要避免有权访问服务器的人访问和重用我们的代码.
到目前为止,我听到的一个选项是我可以检查代码中的MAC地址,但是,用户可以更改MAC地址.
有哪些最安全的选择可以避免这种情况?
我们当前在工作中采用的系统是编写一些极其复杂的查询,这些查询执行多个计算并具有多个连接/子查询。我认为我没有足够的经验来判断这是否正确,所以我同意并尝试使用这个系统,因为它有明显的好处。
我们目前遇到的问题是编写查询的人犯了很多错误并假设一切都是正确的。我们现在已经指派了一名测试人员来分析所有查询,但这仍然证明非常耗时且压力很大。
我想知道我们如何创建一个自动化程序(如果可能的话,无需专门用代码编写它,因为我可以弄清楚如何做到这一点)来验证一组 10 多个不同的输入,验证输出数据并说如果计算正确。
我知道我可以使用数据库中的特定数据编写一个脚本,并使用 c# 创建一个脚本(数据库是 SQL Server)并验证所有出来的值,但我想知道官方的“标准”是什么,因为我的经验是我在这方面有所欠缺,希望能够改进。
如果需要,我很乐意添加更多信息,如果需要,请添加评论。谢谢。
编辑:我正在使用 c#
我们假设我有以下结构:
<div id="divid1">
<div id="divid2">
<div id="divid3">
</div>
<div id="divid4">
</div>
</div>
<div id="divid5">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
上面的代码只是解释问题的一个例子,所以不要过多关注它.
现在让我们假设我有以下jQuery:
$("#divid1").click(function(){});
Run Code Online (Sandbox Code Playgroud)
现在..我想做的是以下内容:
divid1
.让我们假设他们实际上已经点击了divid4.触发此事件是因为divid4
内部divid2
是内部的divid1
约束:
请原谅看似简单的问题,但出于某种原因,我现在想不出一个优雅的解决方案.
我有以下情况:
if (Request.QueryString["name"] != null)
{
if (Request.QueryString["name"].ToString() != "")
{
nameSpan.InnerHtml = Request.QueryString["name"].ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我想隐藏nameSpan
if querystring ["name"]是null或emtpy.丑陋的解决方案是:
if (Request.QueryString["name"] != null)
{
if (Request.QueryString["name"].ToString() != "")
{
nameSpan.InnerHtml = Request.QueryString["name"].ToString();
}
else
{
nameSpan.Visible = false;
}
}
else
{
nameSpan.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)
我想有一种情况,两个nameSpan.Visible = false;
部分都可以合并到一个区域,所以我只需要写一次.
据我所知,不可能做到以下几点:
if (Request.QueryString["name"] != null && Request.QueryString["name"].ToString() != "")
{
nameSpan.InnerHtml = Request.QueryString["name"].ToString();
}
else
{
nameSpan.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)
但请告诉我,如果我错了!如果你有一个不同的解决方案来改变逻辑,那么我非常乐意拥有不同的观点!谢谢!