嗅探和篡改网站的请求和响应,如何预防?(sniffing and tampering requests and responses of web sites, how prevent?)

我正在研究有关我的网站的安全性和其他内容。
在我的国家在线支付工作像贝宝。
意味着您应该通过post方法将一些参数(如Amount,MerchantID,ReturnURL,ResNum(OrderID))传递给银行,银行将在付款后将一些参数(如MID,Status,ResNum)传递给您。
在此请求和响应期间,有人可以使用下面的软件来嗅探和篡改:
http://www.fiddler2.com/fiddler2/
请看这个视频:
http://www.fiddler2.com/fiddler/help/video/
我测试它,它也可以使用证书在https上工作。
哇...

  1. 我怎样才能防止这种嗅探和篡改?
    银行网站中有一个名为VerifyTransaction的功能,在付款后在卖方支付,此功能返回金额。
    此功能在银行方面的Web服务上。
    主要问题是:
  2. 有人可以在银行和卖家之间嗅闻和篡改网络服务吗?
    是指小提琴手可以做那个还是其他工具?
    如果是的话,我们如何防止这种嗅探和篡改(网络服务)?

非常感谢关注


i am working on security and other stuff about my web sites.
in my country online payments work like paypal.
mean you should pass some parameters such as Amount,MerchantID,ReturnURL,ResNum(OrderID) by post method to bank and bank will pass some parameters such as MID,Status,ResNum to you after payment.
during this requests and responses somebody can use the software below to sniff and tamper:
http://www.fiddler2.com/fiddler2/
please see this video:
http://www.fiddler2.com/fiddler/help/video/
i test it and it also works on https by using a certificate.
wow...

  1. how can i prevent this sniffing and tampering?
    there is a function in bank site named VerifyTransaction that is called on Seller side after payment and this function returns amount.
    this function is on a web service on bank side.
    the main question is :
  2. can somebody sniff and tamper web service between bank and seller?
    mean can fiddler do that or the other tool?
    if yes, how can we prevent this sniffing and tampering (web services)?

really appreciate for attention


原文:https://stackoverflow.com/questions/10494952
2021-12-02 22:12

满意答案

Fiddler在运行Web浏览器的同一客户端上运行,两者都在同一个用户的控制下,所以它不能做任何你只能用浏览器做的事情(但也许更多努力)。

从来没有保证从HTML / JavaScript /等发送来自客户端到服务器的数据。 你服务他们。 这就是为什么你永远不应该信任用户输入,例如总是在服务器端进行数据验证(并且仅在客户端另外进行数据验证以提高可用性)。 这就是银行和卖家之间进行网络服务呼叫的原因,以确保交易细节是正确的。

通过适当的TLS设置,可以防止对卖方服务器和银行服务器之间的流量进行篡改和嗅探。


Fiddler is running on the same client that the web browser runs on, both under the control of the same user, so it can't do anything that you couldn't do with just a browser (but maybe much more effort).

There is never a guarantee that data coming from clients to your server has been sent by the HTML/JavaScript/etc. that you served them. That is why you should never trust user input, e.g. always do data validation on the server side (and only additionally on the client side for improved usability). And that is the reason for the web service calls between the bank and the seller, to ensure that the transaction details are correct.

Tampering and sniffing of traffic between the seller-server and the bank-server can be prevented by proper TLS setup.

相关问答

更多

嗅探和篡改网站的请求和响应,如何预防?(sniffing and tampering requests and responses of web sites, how prevent?)

Fiddler在运行Web浏览器的同一客户端上运行,两者都在同一个用户的控制下,所以它不能做任何你只能用浏览器做的事情(但也许更多努力)。 从来没有保证从HTML / JavaScript /等发送来自客户端到服务器的数据。 你服务他们。 这就是为什么你永远不应该信任用户输入,例如总是在服务器端进行数据验证(并且仅在客户端另外进行数据验证以提高可用性)。 这就是银行和卖家之间进行网络服务呼叫的原因,以确保交易细节是正确的。 通过适当的TLS设置,可以防止对卖方服务器和银行服务器之间的流量进行篡改和...

Fiddler不能从ASP.NET网站嗅探SOAP流量(Fiddler not sniffing SOAP traffic from ASP.NET website)

什么是Web服务的客户端 ? ASP.NET? 除非您将ASP.NET配置为使用代理,否则ASP.NET流量不会被代理。 app.config或machine.config有可能/可能发生变化,以至于流量不再被代理? 你应该看看这个部分: http : //www.fiddlerbook.com/fiddler/help/hookup.asp#Q-DOTNET What's the client of the web service? ASP.NET? ASP.NET traffic isn't ...

监控HTTP请求和响应(无Web浏览器)(Monitoring HTTP requests and responses (no web browser))

试试Tomcat的AccessLogValve 。 您可以将其配置为记录传入的请求标头以及传出的响应标头。 这是一个例子: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_headers_access_log." suffix=".txt" pattern="%t &quot;%r&quot; %s ||...

WCF中的JSON请求和响应(JSON requests and responses in WCF)

发现问题。 感谢SvcTracingTool,我发现所有这些都是由序列化问题引起的,因为引发的异常说: InnerException消息是'类型'xxxxxxxxx'无法序列化为JSON,因为其IsReference设置为'True'。 JSON格式不支持引用,因为没有用于表示引用的标准化格式。 要启用序列化,请在类型或相应类型的父类上禁用IsReference设置。 有关更多详细信息,请参阅InnerException。 现在,下一步是理解为什么WCF返回404错误而不是异常。 Problem ...

防止查询字符串篡改(Prevent query string tampering)

无论是通过$_GET查询篡改还是通过基于cURL的查询,您都无法阻止用户进行篡改,这就是它的方式,但是您可以通过使用加密或令牌使用户更难以篡改。 假设您有任何类型的用户输入,它可能会被篡改。 快速说明,我不是任何想象力的密码学专家,所以不要把它作为佳能。 你应该根据自己的需要做更多的研究。 如果您需要保留已登录用户的数据,您应该考虑使用会话而不是通过$_GET查询传递。 双向数据加密: 根据您的需要, openssl可能是一种选择。 如果我想传输数据但是不一定希望最终用户以纯文本形式查看,我会使用...

测量Web请求和响应的大小(Measure size of Web Requests and Responses)

您可以在IE上使用HttpWatch ,在Firefox上使用FireBug来检查请求响应头。 这些应该足以满足你的要求。 You can use HttpWatch on IE and FireBug on firefox to check the request response header. These should be enough for what you have asked for.

记录来自客户端的ASMX请求和响应(Logging ASMX Requests and Responses from Client)

我不知道有什么方法可以在不更改应用程序的情况下执行此操作。 您可能会将SoapExtension创建为单独的二进制文件,然后将其存储在\bin文件夹中并将web.config更改为指向它。 尽管如此,添加新的二进制文件可能被认为是“改变应用程序”。 当然,ASMX没有可配置的日志记录,不需要编码。 I don't know of any way to do this without changing the application. You might get away with creating...

Web服务如何处理请求和响应,以及PHP如何正确访问它?(How web-services handle requests and responses, and how PHP could access this correctly?)

你在正确的轨道上。 Web服务只是一个处理或存储工具,旨在由某些其他程序访问,就像数据库或文件服务器服务一样。 将请求发送到Web服务的正确方式是什么? 这取决于。 最常见的实现使用SOAP或REST,它们定义了HTTP协议之上的附加语义。 SOAP使用单个URL作为服务的网关,并且更具体地选择功能,并且相关数据嵌入在通过POST呈现的XML有效载荷中。 HTTP仅仅是消息交换的承载者。 在REST中,HTTP部分被集成到事务的语义中。 该URL标识数据的位置(或处理功能) 有效载荷仅包含数据,通...

如何防止PHP中的URL变量被篡改?(How to prevent URL variables tampering in PHP?)

除了POST和Post / Redirect /获取建议..一般情况下: 永远不要相信您在HTTP请求中收到的任何信息(包括GET参数,POSTed数据,Cookie和HTTP标头)。 始终确保用户有权对相关数据对象执行每个操作,并且在接受和处理数据之前,始终在服务器端验证数据是否合理。 In addition to the POST and Post/Redirect/Get advice.. In general: Never ever trust any of the information...

在JSF中,防止表单篡改的最佳方法是什么?(In JSF, What is the best way to prevent Form tampering?)

在JSF中,如果使用required="true"明确设置了这些字段,则应该已经不可能了。 如果省略这个和/或替换自定义验证器或者在bean操作方法中进行验证,那么机器人确实能够篡改表单。 因此,要解决此问题,请将显式required="true"添加到具有硬服务器端值的必填字段(因此不需要例如required="#{not empty param.foo}"或者客户端/机器人可以控制param.foo )。 由于视图状态存储在服务器端,因此webbot无法显示/修改状态。 至少,这就是理论。 或...

相关文章

更多

Some Sites

MongoDB http://wenku.baidu.com/link?url=iShQWlgGxE2 ...

JAVA WEB

我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博,唯独 ...

Beware the Web Fads of Yesteryear

There's no doubt that &quot;social networking&quot; ...

Web scraper open source

ByadminOnSeptember 10, 2012&middot;Add Comment ...

从Web到移动应用的设计思维转换

【编者按】本文作者@刘津legene随着移动互联网的快速发展,很多Web产品经理、设计师转而投身至移动 ...

了解 Web Part 框架

了解 Web Part 框架 发布日期: 4/1/2004 | 更新日期: 4/1/2004 ...

3大Web安全攻击

近期,美国及韩国的政府、国防和商务网站频遭攻击、欺诈事件的层出不穷,信用卡及网上银行账号信息频繁被盗用 ...

Shiro整合到Web应用

添加了一个新的src/main/webapp/login.jsp文件和一个简单的登录表单以使用它来登录 ...

如何打造高性能Web应用

Sean Hull是Heavyweight Internet Group的创始人兼高级顾问,拥有20年 ...

HTML5 web存储(Web Storage)【HTML5教程 - 第十一篇】

使用HTML5,web页面可以使用用户的浏览器本地保存数据。在以前,通常我们使用cookie来保存用户 ...

最新问答

更多

将十六进制的字符串转换为字符串(Convert hex-encoded String to String)

您希望将十六进制编码的数据用作AES密钥,但数据不是有效的UTF-8序列。 您可以将其解释为ISO Latin编码中的字符串,但AES(key: String, ...)初始化程序将该字符串转换回其UTF-8表示形式,也就是说,您将从开始时获得不同的关键数据。 所以你不应该把它转换成字符串。 使用 extension Data { init?(fromHexEncodedString string: String) } 方法从Swift中进行十六进制/二进制字符串转换,将十六进制编码的

将friendly_id添加到用户模型后,登录后的友好转发不起作用(Friendly forwarding after login doesn't work after adding friendly_id to the user model)

在应用程序控制器中,将redirect_back_or(path)方法更改为此方法。 def redirect_back_or(path) redirect_to session[:forwarding_url] || path session.delete(:forwarding_url) end 你有redirect_to request.referer之前负责将你重定向到最后一个url,即login_url。 我不知道为什么你要定义两个不同的方法

Qt + VS2010:由于 .dll从您的计算机丢失,程序无法启动(Qt + VS2010: The program can't start because .dll is missing from your computer)

您可能需要将有问题的DLL复制到您的可执行文件所在的文件夹中,或者确保DLL位于系统PATH中的文件夹中。 You likely need to copy the DLLs in question to the folder your executable is in, or ensure that the DLLs are located in a folder in the system's PATH.

AutoFixture使用内部setter创建属性(AutoFixture create property with internal setter)

理想情况下 ,测试不应该与类的internal成员交互,因为它们明确地从其公共API中排除 。 相反,这些成员将通过公共API启动的代码路径间接测试。 但是,如果在您的特定情况下这不可行,则可能的解决方法是从测试中明确地为内部属性赋值 。 您可以通过以下两种方式之一来实现: 通过使用InternalsVisibleTo属性将程序集中的所有内部成员公开给测试项目。 通过在特定接口中表示类的可修改状态并明确地实现它。 在您的示例中,选项1将是: // [assembly:InternalsVisib

使用Trigger.IO/PhoneGap在UIWebView中使用focus()事件自动显示键盘(Show keyboard automatically with focus() event in UIWebView using Trigger.IO/PhoneGap)

访问UIWebView不是我们在当前版本的插件中正确公开的东西(但我们很快就会支持)。 现在,如果您想尝试一下,可以添加 extern UIWebView *webView; 在插件文件的顶部,这将使您的API方法中的变量webView可用。 这将很快停止工作,所以我建议你现在只用它来测试一下。 2012年10月更新 : 该应用程序的Web视图现在通过ForgeApp : http : ForgeApp 例如: [ForgeApp sharedApp].webView Access to t

ASP.NET MVC控件(ASP.NET MVC Control)

您可以使用RadComboBox以及此处找到的此telerik社区项目提供的一些小调整。 应该在MVC中都能正常工作。 You can use the RadComboBox along with a little tweaking as provided for by this telerik community project, found here. Should all work fine in MVC.

在后期保存上下文 - 将指针保存到上下文?(Saving Context At a Later Stage - Saving Pointer To Context ? Core Data)

是的,您可以在循环后保存上下文。 它比每次迭代中的保存要好得多。 如果你看一下MagicalRecord src,你会看到MR_contextForCurrentThread总是为相同的线程返回相同的上下文,如果没有上下文的线程,MagicalRecord会创建它。 此外,您不需要传递上下文[_entityClass createInContext:context] ,只需要[_entityClass MR_createEntity] - 它将在当前线程的上下文中创建 Yes, you can

tinyMce函数用于确定弹出窗口是否已打开(tinyMce function to determine if popup is already open)

这是我要去的解决方案: 我似乎已经确认: - windowManager.open()不会像window.open()那样返回对窗口的引用 - windowManager没有内置方法来限制可以打开的实例数。 但它确实有一种方法可以将onClose函数添加到插件窗口:ed.windowManager.onClose.add(function(){alert('Closing!');}); 所以我将在onClick代码中使用一个变量来跟踪弹出窗口是否已被打开和关闭。 onClose函数将该变量标记为

使用nil调用Document.find在mongodb中无效(Calling Document.find with nil is invalid in mongodb)

OrderController #new调用OrderController#current_cart,它运行Cart.find(session [:cart_id])。 在会话开始时没有:cart_id,即session [:cart_id]为nil,你得到上面的Mongoid :: Errors :: InvalidFind异常。 请注意,当您正在抢救ActiveRecord :: RecordNotFound时,您的救援子句不会挽救该异常。 您正在使用Mongoid,而不是ActiveRec

在函数中返回postgresql查询结果(Return postgresql query result in a function)

假设您正在使用nodejs和pg模块。 正如您所说,由于查询功能是异步的,您无法直接将结果返回给调用者。 传统上,在nodejs中,调用者传递一个回调函数来处理结果或错误(如果有的话)。 在Kotlin中,这看起来像: client.query(MY_QUERY_TEMPLATE, params) { err, result -> if (err != null) { // do something with the error }