- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
假设我有一个用 Java 实现的网页,可以在 http://mycompany.com/page1.xhtml?trafficSource=someTrafficSourceIdentifier&checkSum=...
处获取。
我想跟踪不同流量来源(例如不同的广告 Activity )产生的页面访问量。为此,我有 trafficSource
参数。流量来源 ID 集仅限于 5 个可能的值(例如 Google Organic、Google AdWords、YouTube、Facebook、Twitter)。
想象一下,我想确保 trafficSource
没有被篡改(没有人在那里放置不同的值)。为此,我引入了 checkSum
参数。
为字符串 X 创建校验和 (checkSum = f(X)
) 的最简单方法是什么,以便不同的输入字符串转换为不同的校验和?
此措施的目的是对我的参数进行基本检查。
我尝试使用以下内容,但它生成一个包含非字母数字字符的字节数组,我无法将其放入 URL 中。
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class CheckSumGenerator {
public String calculateCheckSum(final String aInput) throws NoSuchAlgorithmException {
final MessageDigest md = MessageDigest.getInstance("SHA");
final byte[] checkSumBytes = md.digest(aInput.getBytes());
final String result = new String(checkSumBytes);
return result;
}
}
最佳答案
您可以从http请求 header 中获取服务器端的referrer,该 header 对用户不可见。这可以识别来自 YouTube 或 Facebook 的访问者。
要解决将哈希值转换为字母数字字符串的问题,您可以将结果字节转换为十六进制代码。
final String result = DatatypeConverter.printHexBinary(checkSumBytes);
关于java - 如何验证URL参数没有被篡改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27628202/
大家好,我是沙漠尽头的狼。 本文首发于 Dotnet9 ,介绍使用 Lib.Harmony 库拦截第三方 .NET 库方法,达到不修改其源码并能实现修改方法逻辑、预期行为的效果,并
我有Helm Applciations使用 Terraform 的 helm_release 资源与 Terraform 一起部署。 有时由于以下一个或多个原因,我的 Kubernetes Pod 将
我有Helm Applciations使用 Terraform 的 helm_release 资源与 Terraform 一起部署。 有时由于以下一个或多个原因,我的 Kubernetes Pod 将
我们开发了一个 Javascript 文件供客户使用。 Javascript 片段对其运行的网站进行屏幕截图,然后通过 jQuery.post() 将其发送回我们的服务器 我们行业的性质意味着我们必须
我在本地主机上运行我的测试站点。 当我用 URL 加载它时: localhost/projects/forums/index.php 它看起来像这样(符合预期) 但是当 我给 URL: localho
我正在 中共同开发一个简单的网络应用程序 rails 3.0.9 我已经意识到可能通过恶意请求篡改 session_id。请注意,这是我的第一个 RoR 应用程序,所以我的概念可能完全错误。 当前的应
我返回了以下 JSON 数据,但由于某种原因,Javascript 或 jQuery ajax 似乎重新组织了项目列表。服务器返回按item.title字母顺序排序的数据(已验证)... 下面的 JS
背景 我是一名经验丰富的 Web 开发人员(主要使用 Python 和 CherryPy),之前从头开始实现过安全 session 管理,现在正在学习 Rails。我正在调查 session 暴露的
我正在使用 MVC3、.NET4.5、C#、Razor。 我在 Codeproject 之外重用了 Albin 的一些非常有用的代码,通过添加哈希来防止 URL 篡改。主要运行良好。 然而…… 我现在
我是一名优秀的程序员,十分优秀!