- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前已经构建了一个系统来检查用户 IP、浏览器和随机字符串 cookie 以确定他是否是管理员。
在最坏的情况下,有人会窃取我的 cookie,使用与我相同的浏览器,并掩盖他的 IP 以显示为我的 IP。我是否应该在我的脚本中添加另一层安全性以使其更安全?
编辑:澄清一下:我的网站绝对不接受用户的输入。我只是在设计一个后端管理面板,以便更轻松地更新数据库条目。
最佳答案
检查浏览器完全是浪费代码。编写一个 trivial 的安全系统是没有意义的供攻击者绕过。如果攻击者通过 xss 或嗅探线路获得 session ID,那么他们也将拥有您的“用户代理”。
检查 ip 地址将迫使攻击者“骑”在带有 XSS+XHR 或 XSRF 的 session 上。这是因为被劫持的 token 不会在他的盒子上工作。不幸的是,这也会导致在多个 IP 地址之间使用传出负载平衡的企业网络出现问题。
HTTPS 必须用于整个 session 。您的 token 绝不能通过 HTTP 发送。这在 The OWASP Top 10 for 2010 的“失效的身份验证和 session 管理”中有清楚的说明。 ,如果您正在编写 session 处理程序,则绝对必须阅读。
session ID 必须始终超时。如果没有超时,则这称为不朽 session ,这是公认的漏洞。
此外,我更担心您的 token 的随机性。确保您学习如何正确生成 cryptographic nonce .确保您的随机数生成器功能强大,并且植入了攻击者无法获知的信息。
我还怀疑您没有考虑到 XSS 和 XSRF。如果您不检查主要漏洞,那么您在其他领域的 session 有多强大都没有关系。确保使用 a free xss scanner 扫描您的应用程序或开源 wapiti。请记住,没有任何测试可以准确地检测到 XSRF,并且您的应用程序中的每个请求都容易受到攻击,除非您专门对其进行修补。
关于python - 网络安全 : Worst-Case Situation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2670346/
我经常在 ATS 中看到使用 case、case+ 或 case- 形成的 case 表达式。有什么区别? 最佳答案 如果表达式不详尽,使用 case 会发出警告,case+ 会产生错误,而 case
我有一个导入时全部大写的表,我想将其转换为正确的大小写。你们用什么脚本来完成这个? 最佳答案 这个函数: “正确大小写”由空格分隔的所有“大写”单词 保留“小写单词” 即使对于非英语字母也能正常工作
#include int main() { switch(2) { case 1: if(1)
我已经四处寻找了一段时间,如果我使用的术语不当,请原谅我... 代码的目标是在输入为 0 时更新 Aout1 和 Aout0,输出对应于 7 段显示,但出现以下错误: “错误 (10170):Four
我正在尝试按照 PostgreSQL 手册中的说明进行操作。 PostgreSQL: Documentation: 9.1: Control Structures 我的 PostgreSQL 服务器是
我有一个状态机,其中有几个非常相似的状态。我可以为每个状态编写它,如下例所示: module CHECK_FSM ( GO, DONE, CLK, RESETN ); input GO;
如何使用或创建案例? 就像是: string str; case (str) "abc" || "dfg": begin //some code end "yfg":
这个问题已经有答案了: Are double and single quotes interchangeable in JavaScript? (23 个回答) 已关闭 9 年前。 我正在学习Java
汽车 Make | Model | Year | Color Honda | Accord | 12 | Red Lexus | IS | 14 |
如何使用当前 case 语句的值跳转到 switch-case 条件下的另一个 case 语句? 是否可以使用 switch case 来实现这种事情,或者是否有其他实现方式? 有可能实现吗?如果没有
我理解下面的代码。 var day = 2; switch (day) { case 1: document.write("Monday"); break;
这是有效的。 object FilesToDFDS { case class Student(id: Int, name: String, dept:String) def main(
我对 VHDL 还是个新手。我需要在 CASE 语句中为多个信号赋值,如下所示: CASE input24 IS WHEN "00" THEN output0
我有这个 case 语句,它给出了一个错误“变量 constant1 未使用”。它似乎忽略了变量并返回了第一行,因此变量显然没有范围。如果我用数字 1 替换常量,那么它就可以工作。在 Elixir 中
在 MySQL 中,是否可以在 SELECT 子句中有两个 CASE 语句,其中第二个 CASE 语句依赖于第一个 CASE 语句? 例如,考虑以下查询: SELECT CASE WHEN `user
我正在尝试一个挑战,我需要获得一个随机数,并在没有重复的情况下打印数字内的数字总和:例如,123 将打印 6 ( 1 + 2 + 3 ),而 32111 将做同样的事情(因为我们没有在我们的总和中添加
当有人试图更新当前未存储在我的散列中的值时,我想立即返回 when 'add' 而无需重新启动整个 case声明,因为我已经知道他们想要添加并且不想再次提示他们。 有没有一种方法可以在不重新启动整个案
老 C 程序员可以在 Swift 方面得到一些帮助。 我不太了解 if-case 语法。例如: if case 20...30 = age { print ("in range.") } cas
老 C 程序员可以在 Swift 方面得到一些帮助。 我不太了解 if-case 语法。例如: if case 20...30 = age { print ("in range.") } cas
我有一个 ArrayList,其中包含以下字符串:[name, age, gender, salary] . 有没有办法可以将 ArrayList 中的值用作 case 表达式? 显而易见的答案是否定
我是一名优秀的程序员,十分优秀!