-1

我有一个包含某些元素、输入框、复选框等的表单。我需要加密这些输入框和复选框的名称。我目前正在通过 c# 使用 Rijndael 加密/解密方法,但这会使加密名称太长而无法在帖子中传递。有没有更好的方法来获得像样的加密名称?我的目的是在帖子发生之前对名称进行加密,因此如果有人查看名称背后的代码已经加密。

4

3 回答 3

4

你打算通过这样做来完成什么?

  • 它不会阻止任何人分析表单或提交欺骗性数据。如果他们查看页面源代码并看到<p>Email: <input type='text' name='skhge,f'></p>,那么他们会很清楚“skhge,f”是电子邮件字段的名称,因此他们可以使用该名称而不是“电子邮件”提交欺骗性数据。

  • 您对该问题的评论之一似乎暗示您担心表单在发送给用户时被拦截。如果是这样,请使用 SSL。它对双向流量进行加密,因此您可以免受任何拦截,而仅隐藏字段名称根本不会提供任何保护。(我的第一点同样适用于窃听者和数据的最终预期接收者。)

  • 我能想到的唯一可能的情况是,如果您担心有人构建机器人来向您提交表单,但是即使那样,这是错误的方法 - 如果您正在加密字段名称,那么每次您发送表单时它们都将保持不变,因此机器人将被编写为每次提交“skhge,f”而不是“电子邮件”。

    要以这种方式挫败机器人,您需要在每个表单中提交随机字段名称,而不是加密名称,并且您对使用 GUID 的建议的回复表明您不想维护“字段名称 - >发出的每一个表格的意义地图。维护这样的地图是唯一会减慢机器人编写者的事情,而且,即使这样也不会减慢他们的速度。除非您采取特殊措施来混淆您的表单布局和文本内容(例如垃圾邮件发送者在试图将 HTML 邮件通过垃圾邮件过滤器时使用的那些),否则作为机器人作者,我很容易在之前请求空白表单提交并将呈现给用户的文本标签(例如,用户可见的文本“Email:”)与相应的输入字段相关联,并获得正确的字段名称(“skhge,f”

所以我不太确定你的预期目的是什么,但我99 % 确信加密字段名称不会是最好的方法——如果它甚至可以工作的话。

于 2010-03-15T10:59:17.160 回答
0

您最好将名称映射到服务器端的随机值。

[lkjgh] = 'username';
[hjsaf] = 'email';

如果您重新映射每个请求,查看代码不会显示任何有价值的东西。

仍然让我想知道,为什么会有这个要求?通常,SSL 可以很好地防止窃听。

于 2010-03-15T10:13:06.787 回答
0

如果您担心有人将输入名称与其携带的值相关联,为什么不使用 guid 而不是有意义的变量名称呢?

于 2010-03-15T10:14:11.463 回答