问题标签 [tampering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
290 浏览

jsf - 客户端可以更改 bean 操作方法中 EL 方法参数的值吗?

我目前正在根据特定标准过滤文档列表。

然后我将此列表呈现给用户,我有一个

查看呈现的代码,我在任何地方都看不到文档 ID,但这并不意味着它以某种方式进行了编码,并且可以从客户端进行解码、更改和重新编码。

我对 JSF 状态处理的理解相当薄弱,但如果我错了,请纠正我:无法从客户端手动更改操作参数值的值,因为即使存储在客户端上,也只有服务器可以对会话进行解码和编码状态,参数值存储在那里。我是对的还是应该添加一个检查以downloadDocument(document.id)确保用户有权下载该特定文件document.id?无论如何,我将来都会添加此检查,但我想知道这个问题现在有多重要。

0 投票
1 回答
299 浏览

asp.net - 防止篡改 .NET Framework 中的已发布字段(例如 Id)

我正在 ASP.Net MVC5 中开发这个。给定以下示例:

我更新了实体 A 的所有字段。但是,在发布之前,我更改了 A 的 ID 的隐藏输入字段,并将其更改为 B 的 ID。现在我所有的更新都推送到 B 上了。

.NET 框架中是否有任何解决方案(类似于防伪令牌)来防止这种情况发生?或者我应该实现以下概述的散列方法:http: //sergeyakopov.com/tamper-proof-hidden-fields-in-asp-net-mvc/

谢谢

0 投票
0 回答
33 浏览

validation - 通过删除所需输入来篡改 JSF 2.0 表单

我在 JSF 中有一个像这样的简单表单

我尝试删除元素检查器(F12 Chrome)中的一个输入文本,它实际上绕过了该字段的“必需”验证。

在我的 web.xml 中,我按照在 JSF 中的建议包含了以下代码,防止表单篡改的最佳方法是什么?

我读到 JSF 已经使用上述方法自动将 viewState 存储在服务器中,但事实证明,我仍然可以绕过它。我错过了什么吗?

任何帮助将不胜感激。谢谢!

0 投票
1 回答
755 浏览

javascript - 检测 Ajax 调用中的 Javascript 篡改

我们有一个为客户开发的 Javascript 文件。Javascript 片段截取运行它的网站的屏幕截图,然后通过 jQuery.post() 将其发送回我们的服务器

我们行业的性质意味着我们必须确保文件不会被客户篡改。

所以挑战在于我们需要确保屏幕截图是由托管在我们服务器上的 javascript 文件生成的,而不是被复制或以任何方式被篡改的文件。

我知道我可以使用以下方法获取脚本位置:

但是,如果客户篡改了 SRC 的那一部分,这将无济于事。

我可以采用哪些方法来确保:

1) 该帖子是由我们服务器上托管的 javascript 文件制作的

2) javascript 没有以任何方式被篡改。

0 投票
1 回答
611 浏览

parameters - 使用参数化查询防止参数篡改

是否可以通过在经典 asp.xml 中使用参数化查询来防止参数篡改?如果不是,那么防止它的正确方法是什么?

谢谢你。

0 投票
3 回答
4027 浏览

ios - 如何让 iOS 应用防篡改?

我正在开发一个需要监控对手行为的项目(移动应用程序)。所以,我的问题是如何让 iOS 应用程序防篡改?

例如

  • 每当任何对手试图篡改代码时,系统应提醒管理员这些操作
  • 并阻止那个对手
  • 如果用户尝试在有根设备上安装应用程序,则系统可以检测到。
  • 系统应该能够监控对手的行为。

我找到了类似 android 的解决方案ProGuardSafetyNet但没有找到任何适用于 iOS 的解决方案。

0 投票
3 回答
3186 浏览

security - 可以在保持签名完整性的同时篡改签名的可执行文件吗?

我想知道在确定文件是否被篡改时,我可以在多大程度上依赖文件上的数字签名(又名来自 Verisign、Simantec 等的数字证书)。

假设我想下载一个不再在原始开发者网站上但在第三方网站(如 cnet、oldapps.com 或 filehippo)上可用的应用程序版本。我通常会使用列出 MD5 或 SHA1 哈希签名的人搜索旧的论坛条目,以查看它们是否与我下载的哈希匹配。这仅适用于软件广泛的真正大型开发人员。

我想知道验证文件的数字签名是否是确保文件来自开发人员并且未被第三方更改的另一种可靠方法?

我要问的是:如果黑客使用恶意代码注入已经签名的 DLL 或 EXE,有效地更改文件的哈希,它会破坏数字签名,因为签名嵌入了某种摘要吗?还是签名完全不受影响?

0 投票
1 回答
139 浏览

c# - c# 属性更改 N-Tier 的安全性/验证

我有一个跟踪属性更改的类

这个属性可以被类使用,比如

问题是,在将其传递给 N 层架构中的客户端时,是否有办法保护原始值?

当客户端将客户传递回服务边界时 - 默认情况下您不能信任客户端。您需要从数据库重新加载原始值或验证原始值是否未被篡改。当然,我假设我们将使用基于客户当前值的业务逻辑来拒绝或允许更新操作。

例子:

用户插入名称为 Bob 的记录。

用户获取名称为 Bob 的记录并将名称更改为 Ted。原始值是 Bob,建议值是 Ted。

用户将客户发送到服务以更新客户。

万事皆安。

*现在将业务规则编码到服务中,说明如果客户的名字是 Ted - 允许更新,否则抛出“无法更新”异常。*

用户获取名为 Ted 的记录。用户将名称更改为 Darren。用户将名称改回 Ted - 系统抛出异常。用户获取 Ted。用户作弊并使用工具更改客户端上的 OriginalPropertyValue。服务器不会从数据库中重新获取 OriginalValue,而只是读取来自客户端的 OriginalValue。

用户绕过业务规则。

0 投票
2 回答
665 浏览

java - Java——防止代码修改技术

我最近听说有一家软件安全公司可以让你的代码在逆向工程和代码修改方面防黑客攻击。他们的技术是这样的:

他们在代码中的多个检查点插入校验和,以保护它们之间的代码。由于在每个检查点执行代码流,都会检查校验和,如果代码已被篡改,则校验和失败,并且您知道代码已被修改。如果删除了一个检查点,那么下一个检查点也将失败,因为一个检查点已被删除。

购买他们的服务将完全超出我的项目(Android 应用程序)的预算,但我想自己实现该技术。

有人可以就如何实施这样的事情提供一些见解吗?此外,如果有其他方法可以使用 το 防止代码修改,请分享。

(只是为了澄清一下,我知道混淆、奇怪的误导性代码逻辑以及编写虚假方法以进一步使代码难以阅读,并且也会应用这些方法)

0 投票
1 回答
1178 浏览

security - “指令获取”和“数据读取”之间的区别?

我有一个关于我现在正在阅读的论文的问题,该论文演示了使用自散列机制对某些防篡改软件进行攻击的演示。这种自散列是有效的,因为作者假设执行的代码与散列代码相同,这是正确的,除了针对处理器操作内存的方式进行的一些操作。

在论文中,有以下句子让我感到困扰:“Aucsmith 的 IVK 中的散列和使用网络的校验和系统的一个关键(隐含)假设是处理器运行使得 D(x) = I(x),其中 D (x) 是从内存地址 x 中“读取数据”的位串结果,I(x) 是从 x 中“取指令”相应长度的位串结果。

您如何说明 D(x) 和 I(x) 之间的区别?数据读取和指令获取有什么区别?

谢谢你的帮助