我正在实现一个Web应用程序,它通过soap服务器/客户端交互在后端启动.该网站通过https运行,LDAP正在进行身份验证.
截至目前,我推送所有没有cookie的用户,将其称为"userHash"以引用登录页面.登录页面接受用户名,传递并检查ldap以进行验证.如果它验证我在会话中存储了用户名,用户IP地址和时间戳.
最后,我构建了一个cookie和会话哈希信息:
SESSION['userHash'] = sha1($username.$userip.$timestamp);
cookie['userHash'] = sha1($username.$userip.$timestamp);
Run Code Online (Sandbox Code Playgroud)
这种方式在任何后续请求中我验证用户拥有cookie userHash与会话['userHash']的匹配值
这个设置安全吗?
此外,我想防止暴力攻击,并打算实现一个简单的数据库表来记录失败的尝试.目前我正在考虑:
id | username | timestamp | ipaddress | count
Run Code Online (Sandbox Code Playgroud)
作为一张桌子.这是最好的方法还是有更好的方法?我在这个表中看到,如果我要将失败的尝试限制为每24小时3次,那么攻击者就有能力从同一个IP尝试每个用户名3次.(一面注意:此应用程序预计可用于可能位于子网上的潜在学校计算机实验室,因此显示来自同一IP地址的多个登录,因此我需要注意何时基于IP地址进行阻止. )
另一方面,我想知道是否有像"denyhosts"这样的用于http身份验证的东西?
我有一个密码验证,如下面的规则
这是我的测试代码:
class PassingInActionStatement
{
static void Main(string[] args)
{
var dsufac = new DoSomethingUsefulForAChange();
dsufac.Do(WriteToConsole);
dsufac.Do2(s => WriteToConsoleWithSomethingExtra("Test"));
dsufac.Do(WriteToConsoleWithSomethingExtra("Test")); // Does not compile
}
internal static void WriteToConsole()
{
Console.WriteLine("Done");
}
internal static void WriteToConsoleWithSomethingExtra(String input)
{
Console.WriteLine(input);
}
}
internal class DoSomethingUsefulForAChange
{
internal void Do(Action action)
{
action();
}
internal void Do2(Action<String> action)
{
action("");
}
}
Run Code Online (Sandbox Code Playgroud)
前2个电话有效,但我想知道为什么第3个电话没有.我不喜欢Do2中的代码,因为我action("")
在那里有类型类型以使其工作似乎很奇怪.
有人可以解释一下我不明白的两件事吗?
我注意到一些查询突然间运行缓慢.在对它们运行EXPLAIN后,我意识到他们没有使用我创建的索引.
我使用SHOW INDEXES进一步查看,并意识到除了桌面上的主键之外所有都被禁用.我确定我没有手动禁用索引.
我使用ALTER TABLE表ENABLE KEYS再次手动启用索引,事情恢复正常.
他们将如何成为残疾人?在什么情况下索引会自动禁用?
随着时间的推移,我有一堆测量值,我想在R中绘制它们.这是我的数据样本.我为4个时间点分别进行了6次测量:
values <- c (1012.0, 1644.9, 837.0, 1200.9, 1652.0, 981.5,
2236.9, 1697.5, 2087.7, 1500.8,
2789.3, 1502.9, 2051.3, 3070.7, 3105.4,
2692.5, 1488.5, 1978.1, 1925.4, 1524.3,
2772.0, 1355.3, 2632.4, 2600.1)
time <- factor (rep (c(0, 12, 24, 72), c(6, 6, 6, 6)))
Run Code Online (Sandbox Code Playgroud)
这些数据的规模是任意的,实际上我将对其进行标准化,使得t = 0的平均值为1.
norm <- values / mean (values[time == 0])
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.使用ggplot
,我绘制了各个点,以及在每个时间点通过平均值的线:
require (ggplot2)
p <- ggplot(data = data.frame(time, norm), mapping = aes (x = time, y = norm)) +
stat_summary (fun.y = mean, geom="line", mapping = aes …
Run Code Online (Sandbox Code Playgroud) 我们可以从javascript获取浏览器名称但有任何方法可以相应地更改css.我的意思是一些类的css文件,因为我不想链接另一个css文件,我想写样式
if chrome
a img
{
margin:0;
}
//if mozila
a img
{
margin:5px;
}
Run Code Online (Sandbox Code Playgroud) How-Do /我可以在Java中设置String对象的值(不创建新的String对象)吗?
我在Excel中有一组数据,如下所示(CSV格式)
heading1, heading2, heading3, index
A , randomdata1, randomdata2, 1
A , randomdata1, randomdata2, 2
A , randomdata1, randomdata2, 3
B , randomdata1, randomdata2, 4
C , randomdata1, randomdata2, 5
Run Code Online (Sandbox Code Playgroud)
我希望能够自动构建一个word文档,将word(按heading1分组的信息)显示在单独的表中.所以word文档就像
Table A
heading1, heading2, heading3, index
A , randomdata1, randomdata2, 1
A , randomdata1, randomdata2, 2
A , randomdata1, randomdata2, 3
Table B
heading1, heading2, heading3, index
B , randomdata1, randomdata2, 4
Table C
heading1, heading2, heading3, index
C , randomdata1, randomdata2, 5
Run Code Online (Sandbox Code Playgroud)
请有人帮我这个,因为它可以节省大约20个小时非常无聊的复制和粘贴和格式化!
谢谢你的帮助
我有一个带有许多 EJB 依赖项的 EAR。其中 2 个提供了对 glassfish-embedded-all jar 的范围依赖。但是,当我在本地计算机上进行 mvn 安装或通过 hudson 上的 Maven 构建应用程序时,耳朵始终包含 glassfish-embedded-all jar。
例如具有提供的依赖项的 DataAccess-ejb
<dependency>
<groupId>org.glassfish.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
具有 ejb 依赖性的应用程序 Ear
<dependency>
<groupId>com.xxx.yyy</groupId>
<artifactId>DataAccess-ejb</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
有什么想法我做错了什么或可能的建议吗?
干杯,
詹姆士