我是编程界的新手,我已经对使用 HTML-AJAX-PHP-MySQL 的基本 CRUD 类型 Web 应用程序有了足够的了解。我一直在学习编码作为一种爱好,因此只使用了 WAMP/XAMP 设置(本地主机)。我现在想尝试使用 VPS 并学习设置它,并最终打开一个新项目供公众使用。
我注意到,每当我使用 AJAX 甚至常规 POST 将表单数据发送到我的 PHP 文件时,如果我打开 Chrome 调试器并转到“网络”,我就可以看到正在发送的数据,以及发送到哪个后端它将数据发送到的 PHP 文件。
如果用户可以看到这个,他们是否可以拦截这个数据,修改它,并将它发送到同一个后端 PHP 文件?如果他们创建自己的简单 HTML 页面并将 POST 数据发送到我的 PHP 后端文件,是否可行?
如果是这样,我该如何避免这种情况?我一直在阅读有关使用 HTTPS 的文章,但我仍然感到困惑。使用 HTTPS 是否意味着我必须以任何方式更改我的代码?
最佳答案
浏览器显然会知道它发送的是什么数据,并且会在调试器中显示出来。 HTTPS 对传输中的数据进行加密,远程服务器将在收到后对其进行解密;也就是说,它可以防止中间的任何第 3 方读取或操纵数据。
这可能会让您感到震惊(或者可能不会),但与您的服务器的通信完全通过 HTTP(S) 进行。那是一个简单的文本协议(protocol)。任何人都可以随时随地向您的服务器发送任意 HTTP 请求。 HTTPS 加密与否。如果您担心有人操纵通过浏览器调试器工具发送的数据……您的担心完全是错误的。有许多更简单的方法可以将任意精心制作的 HTTP 请求发送到您的服务器,甚至无需访问您的站点。
您的服务器只能依赖于它接收到的数据,并且必须根据自己的优点严格验证给定的数据。试图以任何方式锁定客户端都是徒劳的。
关于php - HTTPS 是否使 POST 数据加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45484576/
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou
这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife
我知道您通常应该在Rails中使用新建/创建和编辑/更新之间的链接,但我有一个情况需要其他东西。无论如何我可以实现同样的连接吗?我有一个模型表单,我希望它发布数据(类似于新View如何发布到创建操作)。这是我的表格prohibitedthisjobfrombeingsaved: 最佳答案 使用:url选项。=form_for@job,:url=>company_path,:html=>{:method=>:post/:put} 关于ruby-on-rails-rails:Howtomak
我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案
我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查
我的日期格式如下:"%d-%m-%Y"(例如,今天的日期为07-09-2015),我想看看是不是在过去的七天内。谁能推荐一种方法? 最佳答案 你可以这样做:require"date"Date.today-7 关于ruby-检查日期是否在过去7天内,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/32438063/
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在阅读SandiMetz的POODR,并且遇到了一个我不太了解的编码原则。这是代码:classBicycleattr_reader:size,:chain,:tire_sizedefinitialize(args={})@size=args[:size]||1@chain=args[:chain]||2@tire_size=args[:tire_size]||3post_initialize(args)endendclassMountainBike此代码将为其各自的属性输出1,2,3,4,5。我不明白的是查找方法。当一辆山地自行车被实例化时,因为它没有自己的initialize方法