我在Rails 3.0.9中共同开发一个简单的Web应用程序,我已经意识到可能通过恶意请求篡改session_id.请注意,这是我的第一个RoR应用程序,因此我的概念可能完全错误.
当前的应用程序功能需要会话,因此我转向ActiveRecordStore会话存储,安装它并开始在原始工作流程中进行测试.我注意到Rails框架使用_session_id一些随机类似哈希的字符串的名称和值创建cookie (在DB SESSION表中,此字符串对应于session_id列).
如果更改了cookie中的值,例如使用Firebug,则当前会话ID将更改为随cookie提供的数据(检查过request.session_options[:id]),并且更改将传播到数据库表,从而创建具有上述参数的新会话记录.
虽然这不会对会话的变量产生任何影响,但会话ID已经从其通常的类似哈希的外观偏离到用户篡改的外观.
这是一个问题 - 如何检测或优先防止这种行为?
security ruby-on-rails session-cookies tampering ruby-on-rails-3
我正在用python(2.6)和mechanize(0.1.11)编写一个web测试脚本.我正在使用的页面有一个带有选择字段的html表单,如下所示:
<select name="field1" size="1">
<option value="A" selected>A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
Run Code Online (Sandbox Code Playgroud)
在机械化中,如果我尝试这样的事情:
browser.form['field1'] = ['E']
Run Code Online (Sandbox Code Playgroud)
然后我收到一个错误: ClientForm.ItemNotFoundError: insufficient items with name 'E'
我可以使用"Tamper Data"firefox扩展手动完成此操作.有没有办法用python和mechanize做到这一点?我可以以某种方式说服机械化表单实际上具有我想提交的价值吗?
我之前从未做过Paypal集成,但是我曾与其他网关合作过.
对于其他网关,还有一个哈希值也会在表单中发送,这会阻止人们篡改数据,即更改数量.
如何用paypal停止这种篡改,似乎没有任何哈希.
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="online****@theg*****.com" name="business">
<!-- <input type="hidden" name="undefined_quantity" value="1" /> -->
<input type="hidden" value="Order" name="item_name">
<input type="hidden" value="NA" name="item_number">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" value="5.17" name="shipping">
<input type="hidden" value="0" name="discount_amount">
<input type="hidden" value="0" name="no_shipping">
<input type="hidden" value="No comments" name="cn">
<input type="hidden" value="USD" name="currency_code">
<input type="hidden" value="http://XXX/XXX/XXX/paypal/return" name="return">
<input type="hidden" value="2" name="rm">
<input type="hidden" value="11255XXX" name="invoice">
<input type="hidden" value="US" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="submit" value="Place Order!" name="finalizeOrder" id="finalizeOrder" …Run Code Online (Sandbox Code Playgroud) 我公司的许多客户都在研究基础上使用我们的数据采集软件.由于一般研究的性质,一些客户要求加密数据以防止篡改 - 如果他们的数据被证明是伪造的,可能会有严重的后果.
我们的一些二进制软件使用存储在源中的密码加密输出文件,该密码看起来像随机字符.在软件级别,我们可以打开加密文件以进行只读操作.如果有人真的想找到密码以便他们可以改变数据,那么这是可能的,但这将是很多工作.
我正在研究使用Python来快速开发另一个软件.要复制加密功能以阻止/阻止数据篡改,我到目前为止提出的最好的想法是使用ctypesDLL进行文件读/写操作,以便加密和解密的方法"足够"模糊处理.
我们清楚地意识到"无法破解"的方法是无法实现的,但与此同时,我显然不满意只是在Python源代码中以纯文本形式使用加密/解密方法.我认为,"非常强烈的数据篡改劝阻"已经足够好了.
使用Python获得加密或其他数据完整性证明的最佳方法是什么? 我看到另一篇文章谈论生成"防篡改签名",但如果签名是用纯Python生成的,那么为任意数据生成签名都是微不足道的.我们或许可以打电话回家来证明数据的完整性,但这似乎对所有参与者来说都是一个很大的不便.
我正在为我的 iOS 项目寻找一个开源的防篡改和代码混淆工具。Android 中的一些库,例如 Proguard。我发现 iXGuard 和 Dexprotector 都是付费工具。我正在寻找一些开源工具。任何帮助将不胜感激。