问题标签 [verification]

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 投票
2 回答
2231 浏览

indexing - 结合年龄验证和谷歌索引

由于蜘蛛通常不会执行 javascript,因此我正在考虑采用以下选项之一,以便成功地让它们为需要年龄验证的网站内容编制索引。

我的首选解决方案:

检查 cookie ' ageverification'。如果它不存在,添加一些 javascript 将用户重定向到 ~/verifyage.aspx,这将添加所需的 cookie 并将用户重定向到他们的上一个页面。

另一种解决方案:

如上,但不重定向用户。相反,如果 cookie 不存在,请在现有页面的“顶部”绘制年龄验证表格。

另一种解决方案:

添加爬虫可以跟踪的“是的,我已超过 18 岁”锚链接。我对这件事的合法性有点怀疑。

非常感谢任何见解或想法。

0 投票
6 回答
255 浏览

.net - 保护程序集免受黑客攻击

我有一个控制台应用程序引用程序集 A。我想确保如果 A.dll 被篡改或替换,该应用程序将不会运行。

一种选择是使用强名称签名。但是我需要担心强名称绕过吗?

还有其他好的选择吗?

0 投票
3 回答
980 浏览

c++ - C++ 中的 USB 串行验证

我有一个 DLL,我打算发送给第 3 方,我想通过限制它仅在连接特定 USB 设备时运行来保护它。我正在使用 setupapi 获取设备的序列号(通过调用 SetupDiGetDeviceInstanceId())。

我想让验证难以跟踪,以防有人反汇编 DLL。例如,对 SetupDiGetDeviceInstanceId 的简单调用是可跟踪的,如果有人想在没有来自 USB 的正确序列的情况下使用我的 DLL,他可以轻松地在汇编代码中查找我的 strcmp 并更改if(strcmp(...) == 0)if(strcmp(...) == 1).

什么是保护我的代码免受逆向工程的好方法(最好是“简单”)?是否有可能我可以使用不同的 API(除了 setupapi)来解决这个问题?

提前致谢!

0 投票
3 回答
1432 浏览

java - 关于字节码和对象的说明

我正在写一个字节码仪器。现在,我正试图找出如何在存在对象的情况下做到这一点。我想对我在 JVMS(第 4.9.4 节)中读到的两行进行一些澄清:

1)“验证者拒绝在初始化之前使用新对象的代码。”

我的问题是,这里的“用途”是什么意思?我猜这意味着:将它作为方法属性传递,调用GETFIELDPUTFIELD,或者调用它的任何实例方法。他们还有其他被禁止的用途吗?而且我相信它遵循其他指令,例如DUP,LOADSTORE是允许的。

2)“在该方法调用 myClass 或其直接超类的另一个实例初始化方法之前,该方法可以对 this 执行的唯一操作是分配在 myClass 中声明的字段。”

这意味着在一个<init>方法中,在调用另一个方法之前允许使用 GETFIELD 和 PUTFIELD <init>。但是,在 Java 中,在调用super()this()导致编译错误之前对实例字段执行任何操作。有人可以澄清一下吗?

3) 我还有一个问题。对象引用什么时候被初始化,从而可以自由使用?通过阅读 JVMS,我得出了一个答案,即对象是否被初始化取决于每种方法。在某个时间点,可以为一个方法初始化对象,但不能为另一个方法初始化对象。具体来说,当一个对象被该方法<init>调用时,该方法返回时为该方法初始化。

例如,考虑该main()方法创建一个对象并调用<init>它,然后调用超类的<init>. 从 中返回后super(),该对象现在被认为已由 初始化<init>,但尚未为 初始化main()。这是否意味着,在<init>after中super(),我可以将对象作为参数传递给方法,甚至在从 main() 返回之前。

有人可以确认整个分析是正确的吗?感谢您的时间。

ps:我实际上已经在 Sun 论坛上发布了同样的问题,但得到了回应。我希望我能在这里有更多的运气。谢谢你。

更新

首先感谢您的回答和时间。虽然我没有得到一个明确的答案(我有很多问题,其中一些有点模糊),但你的答案和例子,以及随后的实验,对我更深入地理解 JVM 是如何工作的非常有用。

我发现的主要事情是验证程序的行为因不同的实现和版本而异(这使得字节码操作的工作变得更加复杂)。问题在于不符合 JVMS,或者验证者的开发人员缺少文档,或者 JVMS 在验证者的领域有一些微妙的模糊性。

最后一件事,太棒了!!!我在 Sun JVM Specifications 官方论坛上发布了同样的问题,直到现在我仍然没有得到答案。

0 投票
1 回答
1151 浏览

hardware - 将 VHDL 监视器转换为 PSL 断言

我有一个关于 PSL 断言的有趣问题。这是一个VHDL监控程序。这是一个专用于断言的过程,因此是一个不可综合的过程。此监视器检查当前 FSM 状态并存储两个寄存器的值:“ input1”和“ reg136”。最后,它触发一个“ assert”语句来比较这些寄存器的值。

问题是:有没有办法将此监视器转换为 PSL(属性规范语言)断言?

重要提示:寄存器“input1”和“reg136”只能在 fsm 状态分别处于状态 s0 和 s22 时读取。否则,这些寄存器中包含的数据不属于断言变量“a”和“t34”。因此,PSL 语句需要一种方法来读取和存储正确 fsm 状态的值。

谢谢 !

0 投票
2 回答
1678 浏览

authentication - Codeigniter IonAuth 库 - 组成员登录后重定向

我刚刚在我的 Codeigniter 应用上使用并安装了 IonAuth。

我已经设置了 3 个用户组..

管理员
成员
媒体 合作伙伴

是否可以将每个用户组重定向到他们独特的仪表板区域而不是主页?

例如

管理员登录并重定向至 =>/admin/dashboard/
会员登录并重定向至 =>/users/dashboard/
媒体合作伙伴登录并重定向至 =>/media-info/dashboard/

我将如何在我的身份验证控制器中解决这个问题?

谢谢,丹

0 投票
2 回答
78 浏览

svn - 在 Subversion 中,我如何验证所有内容都已成功加载到存储库中?

我有一个 Subversion 存储库,但我如何判断它是否真的具备它应有的一切?

工作文件夹和我用来创建存储库的原始文件夹之间的文件和文件夹计数有很大不同,甚至考虑到每个存储库文件夹中 .svn 文件夹的内容。(假设它们都是相同的,这可能无效。)它也不匹配我在不同服务器上创建的沙箱“练习”存储库。

我对 Subversion 很陌生,以至于我的显示器上仍然有那些保护性塑料标签,所以如果我问的是一个愚蠢的问题,请理解。我在手册或本网站上找不到任何相关内容。

导入和提交都说“完成”等,没有错误(此时),但我想找到一种方法来绝对确定一切都在那里。30,000 多个文件中有超过 1.6 gigs 的数据,所以我真的不想比较两个列表或关注它。

0 投票
1 回答
236 浏览

winapi - 使用 PKI 进行轻量级文件验证

我正在尝试扩展在线游戏的遗留代码,以合理保证与游戏相关的资源文件是最新版本,并且没有被篡改。我想在没有 DRM、不进入内核模式和没有硬件帮助的情况下执行此操作。理想情况下,我最终决定的应该是与用户空间一样安全。如果他们能绕过这些机制,那么我会说他们已经获得了调皮的权利——至少在一段时间内,然后我们禁止他们。:)

显而易见的做法是获取每个文件的加密哈希,并将哈希输出与预先计算的哈希进行比较。但必须注意确保用户不能轻易篡改用于与当前计算的哈希进行比较的预先计算的哈希。以下是我在架构层面考虑的措施:

  1. 使用操作系统工具在进程启动时锁定所有资源文件以进行写入,因此没有其他进程可以在事后覆盖这些文件。
  2. 计算每个资源文件的 MD5 和。
  3. 连接到 https 服务器,需要针对存储在客户端可执行文件中的特定签名证书进行验证。
  4. 通过 https 下载包含“正确”哈希的文件,将其存储在 RAM 中(而不是磁盘)。
  5. 将计算的哈希值与通过 https 接收的哈希值进行比较。
  6. 如果哈希不匹配则退出。

这比在客户端存储哈希值更安全,因为只要它们存储在客户端,通常有人可以修改它们。使用此方案,攻击者必须弄清楚如何以更改嵌入式公共证书的方式修改可执行文件,以便它实际上包含攻击者的证书,该证书会针对攻击者的 https Web 服务器进行验证,该服务器包含与攻击者匹配的中毒散列篡改的资源文件。这当然是可行的,但比程序使用存储在客户端上的预计算密钥要困难得多,对吧?

可执行文件是本机代码,因此可以将其包装在打包程序中,这使得编辑二进制文件和替换公钥变得更加困难。

现在,尽管我刚刚在两段前描述了如何潜在地攻击我设计的方案:除了我所描述的之外,还有其他方法可以攻击这个方案吗?

我的第二个问题是,什么是可以从 Win32 C++(Visual Studio 2010 编译器)调用以完成这些任务的免费(如免费软件或自由)库?它们可以通过内置的 Windows API 完成还是需要第三方解决方案?

总而言之,问题是: 1. 我建议的方案是否足够强大,足以让大多数脚本小子感到困惑?和 2. 我将使用哪些依赖项或库来实现它?

由于这只是一个游戏,而不是国家安全甚至金钱风险的问题(游戏是 100% 免费软件,没有游戏内经济),我实施的解决方案应该是相当不错的,但它不一定是工业的-力量。

如果您认为合适,请随意回答我的问题的一个或两个部分,如果您认为我一开始就问错了问题,请纠正我。

谢谢!

0 投票
2 回答
490 浏览

java - Java,发送电子邮件:验证电子邮件地址中是否提供了有效的主机

我们的网站向用户在我们网站上输入的电子邮件地址发送电子邮件。有些人输入垃圾电子邮件地址。我们如何才能查明,至少输入地址的主机是否有效?只是想在输入主机的 25 端口打开一个套接字?

更新:我找到了一个用于 DNS 东西的 Java 库。我应该检查什么记录?

0 投票
1 回答
333 浏览

drupal - 基于令牌邮件操作的邮件验证

早上好,我创建了一个新的内容类型 - 请愿书,最后一步是通过向他们发送链接来验证他们的邮件地址,以证明或从请愿书中删除他们。

我需要获得某种独特的链接,然后将其作为标记化操作邮件发送到表单中提供的邮件帐户。然后,标记化链接应将其邮件地址设置为有效,并且也应该能够取消发布该帖子。

我在这里有点绝望,大方向表示赞赏。