首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

推荐系统还有隐私?联邦学习:你可以

例如,某宝上浏览了几件黑色女式羽绒服,系统根据内容过滤算法直接提取 “黑色”、“羽绒服”、“女式” 等 item 特征,在这个应用场景下,item 具体为 “物品”。...通过对物品进行多次关联性分析,发现多次某宝的点击之间的关联性,从而生成推荐结果,将“女式羽绒服” 推荐到我的某宝首页。...同时,这种方法是可推广的,可以扩展到各种推荐系统应用场景。FCF 的完整框架如图 1。中央服务器上更新主模型 Y(item 因子矩阵),然后将其分发到各个客户端。...为了解决这一问题,本文提出了一种随机梯度下降方法,允许中央服务器更新 y_i,同时保护用户的隐私。具体的,使用下式中央服务器更新 y_i: ?... Fed-NewsRec 框架,新闻平台(网站或应用程序)上的用户行为存储在用户的本地设备,而不需要上传到服务器

4.6K41
您找到你想要的搜索结果了吗?
是的
没有找到

总结Web应用中常用的各种Cache

1.客户端缓存 一个客户端经常会访问同一个资源,比如用浏览器访问网站首页或查看同一篇文章,或用app访问同一个api,如果该资源和他之前访问过的没有任何改变,就可以利用http规范的304 Not...Modified 响应头(http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5 ),直接用客户端的缓存,而无需服务器端再生成一次内容...场景1:我们需要在每个页面一段广告代码,用来显示不同广告,如果没有使用片段缓存,那么每个页面都会要去查询广告的代码,并且花费一定时间去生成html代码: - if advert = Advert.where...,你也可以加入更多的参数,比如article上有评论数的counter cache,更新评论数的时候不会更新文章时间,可以将这个counter也加入到key的一部分 场景3:复杂页面结构的生成 数据结构比较复杂的页面...,在生成的时候避免不了大量的查询和html渲染,用片段缓存,可以将这部分时间大大地节约,以我们网站游记页面 http://chanyouji.com/trips/109123 (请允许小小地打个广告,带点流量

4.7K40

用selenium自动化验收测试

两种模式之间最大的不同点在于,如果使用 driven 脚本,测试有一部分在浏览器之外运行,而如果使用 test runner 脚本的话,测试是完全浏览器运行的。...目前,已经有人在致力于将 Selenium 集成到 Ruby on Rails ,但是撰写本文之际,这个集成版本还没有被发布。...回页首 现实的需求 接下来的两节(现实的需求 和 现实的用例)将描述如何在现实场景中使用 Selenium,并针对用 Ruby on Rails 和一点儿 Ajax 技术编写的一个简单的股票报价查看器应用程序编写...应该看到 Rails 成功启动了,如 图 1 所示。 图 1. 从命令提示符下运行 Ruby on Rails 回页首 现实的用例 本节将列出示例应用程序的用例。...查看股票细节用例 查看股票细节用例是查看股票页面上触发的。用户一个公司名称上单击鼠标时,就触发了到服务器的一个 Ajax 请求。

6.1K30

“技术邪教” Ruby on Rails 之父再出激进言论引争议

现在可以依靠 HTTP/2 和对 import map 的普遍支持来避免打包。”DHH 介绍称。 import map 直译过来是“导入映射”,可以让开发者直接在页面上管理模块,而不需要通过打包构建。...因为 HTTP2 ,每个请求的开销仍然非常大,并且存在并发限制,此外还会出现瀑布流和低效压缩。目前,“打包” 对于高性能网站来说是无法绕过的。...build 是快了,但运行时慢了的话还划算?...Rails 开发者 Niklas Häusele 表示,“喜欢用‘No Build’的方式进行本地开发。无需等待即可刷新,这就是最高的生产力。...甚至删除了 tailwindcss-rails 并将其替换为 tailwind CDN,以避免必须在本地运行任何内容。

24510

网络安全之【XSS和XSRF攻击】

content=alert(“xss”),浏览器展示页面内容的过程,就会执行的脚本,页面输出xss字样,这是攻击了自己,那我如何攻击别人并且获利呢?...场景二: a.com可以发文章,登录后a.com中发布了一篇文章,文章包含了恶意代码,window.open(“www.b.com?...这时Tom和Jack看到了发布的文章,当在查看我的文章时就都中招了,他们的cookie信息都发送到了服务器上,攻击成功!这个过程,受害者是多个人。...原则上来说,每个页面的请求令牌都应该放在独立的 Session Key 。我们设计服务器端的时候,可以稍加封装,编写一个令牌工具包,将页面的标识作为 Session 中保存令牌的键。...通过 referer 判定来源页面:referer 是 HTTP Request Head 里面的,也就是由请求的发送者决定的。如果喜欢,可以给 referer 任何值。

1.4K31

如何在Ubuntu 14.04上使用Puma和Nginx部署Rails应用程序

没有服务器的同学可以在这里购买,不过个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。...自建服务器难免会遇到这样的问题,配置SSL很麻烦,虽然对一部分人来说这也是一种乐趣,但是如果您在生产环境使用,还是建议您直接使用云关系型数据库,云关系型数据库让您在云中轻松部署、管理和扩展的关系型数据库...,并将其绑定到服务器的公共IP地址(替换服务器的公共IP地址): RAILS_ENV=production rails server --binding=server_public_IP 现在,Web...浏览器访问此URL: http://server_public_IP:3000/tasks 如果它正常工作,您应该看到此页面: 返回到Rails服务器,然后按Ctrl-c停止应用程序。...要访问我们之前创建的Tasks控制器,请在Web浏览器访问您的应用程序服务器: http://server_public_IP/tasks 您应该看到第一次测试应用程序时看到的页面,但现在它通过Nginx

5.3K10

总结 XSS 与 CSRF 两种跨站攻击

可以是盗号或者其他未授权的操作——我们来模拟一下这个过程,先建立一个用来收集信息的服务器: ? 然后某一个页面的评论中注入这段代码: ?...接收请求的页面,把接收到的信息的令牌与 Session 的令牌比较,只有一致的时候才处理请求,否则返回 HTTP 403 拒绝请求或者要求用户重新登录验证身份。...原则上来说,每个页面的请求令牌都应该放在独立的 Session Key 。我们设计服务器端的时候,可以稍加封装,编写一个令牌工具包,将页面的标识作为 Session 中保存令牌的键。...通过 referer 判定来源页面:referer 是 HTTP Request Head 里面的,也就是由请求的发送者决定的。如果喜欢,可以给 referer 任何值。...我们还可以做进一步的工作,例如让页面 token 的 key 动态化,进一步提高攻击者的门槛。本文只是个人认识的一个总结,便不讨论过深了。

1.7K80

DHH:2017年Rails 框架还值得学习

这是一篇意译文, 翻译自 DHH( Rails 创始人 ) Quora 上的 Rails 问题回复. 近期, 看得出社区里一些人对 Rails 发展失了一些信心, 想为大家找回一些信心....已经在其他地方进一步详细阐述了Rails 核心原则关于配置的约定方法, 以及点菜 / omakase冲突的说明, 和集成系统的吸引力以及 Rails 社区的其他核心价值....当人们听到 “web 框架”, 有时他们会想, “哦, 那只是一些生成 HTML 的东西, 是?”. 在这种看法下, 有的开发者可能认为这跟 React 之类前端框架是竞争关系....实际上, 最后一步输出 HTML 仅仅是我们关注的很小一部分. 所以, 如果你认为客户端的 MVC 框架如 React, Angular 或者其他框架是未来, 你仍然是 Rails 的目标用户....虽然 Rails 默认是全栈包括 HTML 端渲染, 并且我们缺省提供了 Turbolinks 和 SJR 供大家选择, 但如果这条路不那么有吸引力, 也可以很容易进行替换.

1.9K90

精选 Flexport HackerOne 这一年 6 个有趣的安全漏洞

于是,我们收到了近 200 份报告,包括将服务器 token 从 nginx header 删除到 XSS 漏洞。 以下是 200 个报告中最有趣的 6 个漏洞。 ?...教训: 使用任何带有 dangerous 的功能时,都要严肃对待…… 3 Target=“_blank” 在所有从 HackerOne 收到的报告,最令人惊讶的是标准 HTML 标签的正常使用...攻击者可以将原始页面设置为登录页面或其他任何内容。只能将 rel="noopener noreferrer" 添加到 a 标签,来减轻这一类问题。...5 暴力破解 2FA 转到我们的 Ruby on Rails 后端,我们收到了两份值得注意的报告,都涉及了我们的双重认证。...攻击者所要做的就是忽略 2FA 页面并导航到另一个链接。 ? 原因: 本文中所有的 bug ,这一个是最难找到的。

2.3K80

史上最明了的“编程语言琅琊榜”

小时候对掌握、英、日、阿拉伯等多门语言的人羡慕不已,当时就许下一个心愿「一定要成为掌握多门语言的男人」。今天,的梦想终于实现了,成为了一个程序员,也成为了掌握了多门(编程)语言的男人-_-!...C++的应用非常广泛,客户端软件、后台服务器程序、Android App的一些模块都可以用C++来开发。...HTML HTML 是网页标记语言,我们看到的每一个网页都是以 HTML 的形式从服务器下发的。...它标记了页面各个模块的分布及相应的内容,所以改变了 HTML 的内容,对应展示的页面也会发生相应的变化。...如果你想看一个网站 的 页面代码 ,可以使用在之前的文章中提到的 Chrome DevTools,查看 Elements 这个 Tab 的内容,就是当前页面的源代码。

1.5K71

所谓“现代Web开发”,都是些什么妖魔鬼怪?

最简单的例子,有必要预先加载“关于我们”之类的页面内容?那东西有人看?所以,记得把网站分成几个小部分,让用户自主决定想看什么,这就是 HTML 锚点标签的用途。...Web 不就是这么工作的,怎么到了智能手机上就不一样了呢? 别再从后端向前端发送 JSON 了,我们不是构建 API。既然负责内容交付的客户端就是浏览器,那直接发送 HTML 啊,愣着干什么?...让所有用户输入验证都在服务器端进行。开发过程,尽量只通过一次接入服务器的消息往返即完成所有用户输入验证。没错,根本不需要 AJAX/JavaScript。...另外,任何不在服务器端进行的输入验证都属于错误!换言之,任何基于客户端的输入验证——无论是由 JavaScript 还是浏览器内置的 HTML 5 来实现——都可以被绕过,毕竟它们可都在客户端上。...另外,你真的需要什么统计数据?如果是,难道服务器端收集到的统计数据还不够?真正需要的信息大部分都可以服务器端直接收集,对吧?另外,如果选择跨服务器运行,日志还会被自动发送至日志服务器

53730

盘点 | 史上最明了的“编程语言琅琊榜”介绍

导读:小时候对掌握、英、日、阿拉伯等多门语言的人羡慕不已,当时就许下一个心愿「一定要成为掌握多门语言的男人」。...近出现的 NodeJS,将它的触角延伸到了后台服务, NodeJS 帮助下,也可 以用 JavaScript 写后台服务器程序了。...C++的应用非常广泛, 客户端软件、后台服务器程序 、 Android App的一些模块都可以用C++来开发。...它标记了页面各个模块的分布及相应的内容,所以改变了 HTML 的内容,对应展示的页面也会发生相应的变化。...如果你想看一个网站 的 页面代码 ,可以使用在之前的文章中提到的 Chrome DevTools,查看 Elements 这个 Tab 的内容,就是当前页面的源代码。

1.4K40

CDN 适合您的 Rails 应用程序?适合大规模应用

使用 CDN 有几个好处: 更快的页面加载时间 通过从离用户较近的服务器提供内容,CDN 可以显着减少网站加载所需的时间。这对于远离应用程序服务器的用户尤为重要。...提高安全性 许多 CDN 提供额外的安全功能,例如 DDoS 保护和 SSL 证书,可以帮助保护您的网站免受攻击。 ---- 你应该在 Rails 中使用 CDN ?...---- 如何在 Rails 中使用 CDN 如果您决定在 Rails 7 应用程序中使用 CDN,您可以通过将 Web 服务器配置为从 CDN 服务器提供静态资产来实现。...配置资产主机 您的config/application.rb文件,您可以将 设置config.asset_host variable为 CDN 的 URL。...配置 Rails 为资产提供服务 如果您使用默认的 Rails 资产管道,则需要修改 Web 服务器的配置以从 CDN 的服务器为您的资产提供服务。

14230

慢的不是 Ruby,而是你的数据库

其中一部分时间是由启动时间(在这个用例很难测量)和 JIT 编译器占据的,而另一部分则是 Ruby 垃圾回收机制的任意启动和停止所有进程所造成的问题。...虽然只关注 CPU,但内存也是一个重要问题。然而,现代软件的典型用例,内存使用并不明显:客户与服务器软件交互时会感到缓慢,但并不会直接体验到内存的使用。...此外,Rails 专注于 Web 开发。虽然你可以 Rails 处理非 Web 相关的任务,但这毫无意义。Rails 的目标是处理 HTTP 请求 - 响应。...然而,Rails 的魔力使其从此开始使用这一特性。每次页面加载都会导致大约 2 秒钟的数据库查询,占用数据库服务器上的所有 CPU 和 IO。 当然,这是个愚蠢的错误。...从内存和代码填充某个数组,然后从数据库填充该数组,速度仍然要快一千倍或更多。正如我第一段中所展示的那样。 所以,该怎么办呢?采用的一些经验法则是: 可以避免的情况下,不要使用数据库。

11130

BlackHat2020议题之Web缓存投毒

需要满足以下几点 该页面会被缓存 我们能够明确知道我们的请求是否命中了缓存(响应头中可能会有提示) URL回显到响应或者参数回显到了响应 只有url或者参数被回显到了响应我们才可以进行投毒,而且这些回显也可以帮助我们探索...例如,想//axin/handsome.html页面投毒,可以证明/axin/handsome.html存在漏洞,但是又不影响其他用户,因为正常用户一般不会请求//axin/handsome.html...x=1 vcd=1234 cid=__ Ruby on Rails案例 测试某一个目标时,通过扫描器发现了一个奇怪的现象,但是,又没有找到可利用的缓存点,于是看了一下目标站点的缓存实现源代码。...我们之前已经列举了反射型xss、重定向、登录csrf、jsonp等案例,那么还有其他gadgets? JS、CSS文件大多数情况下都是静态的,但是也有把query字符串作为文件内容的一部分的情况。...在这个例子query字符串不是cache key的一部分,所以我们可以对x参数进行投毒 如果一个页面引入了一个没有doctype声明的页css文件,这个文件甚至都不需要text/css这个content-type

95820

BlackHat2020议题之Web缓存投毒

需要满足以下几点 该页面会被缓存 我们能够明确知道我们的请求是否命中了缓存(响应头中可能会有提示) URL回显到响应或者参数回显到了响应 只有url或者参数被回显到了响应我们才可以进行投毒,而且这些回显也可以帮助我们探索...例如,想//axin/handsome.html页面投毒,可以证明/axin/handsome.html存在漏洞,但是又不影响其他用户,因为正常用户一般不会请求//axin/handsome.html...x=1 vcd=1234 cid=__ Ruby on Rails案例 测试某一个目标时,通过扫描器发现了一个奇怪的现象,但是,又没有找到可利用的缓存点,于是看了一下目标站点的缓存实现源代码。...我们之前已经列举了反射型xss、重定向、登录csrf、jsonp等案例,那么还有其他gadgets? JS、CSS文件大多数情况下都是静态的,但是也有把query字符串作为文件内容的一部分的情况。...在这个例子query字符串不是cache key的一部分,所以我们可以对x参数进行投毒 如果一个页面引入了一个没有doctype声明的页css文件,这个文件甚至都不需要text/css这个content-type

1.2K20

CentOS7.x 搭建 GitLab 教程

因为配置的是域名,因为的域名没有备案,所以我访问的时候提示备案域名,如下图: ? 配置完成后就开始下载并安装,过程大概会持续一个小时左右,视服务器具体带宽而定。...: 输入你配置的ip或者域名来访问 GitLab,如果没有什么异常,会出现如下页面 ?...,设置开启 SMTP,相关教程请参考官网 https://doc.gitlab.cc/omnibus/settings/smtp.html 此处以配置 163 邮箱为例: gitlab_rails[‘smtp_enable...GitLab 并添加一个 GitLab 账户,并添加设置用户的邮箱地址,测试是否可以收到邮件通知,如果创建完成,设置的邮箱收到邮件说明邮件服务没有问题,注意如果没有收到邮件,有时候邮箱会拦截邮件,你垃圾邮件中看看是否邮件被拦截...,如果被拦截,你可以将此邮件添加到白名单

1.7K20

所谓“现代Web开发”,都是些什么妖魔鬼怪?

最简单的例子,有必要预先加载“关于我们”之类的页面内容?那东西有人看?所以,记得把网站分成几个小部分,让用户自主决定想看什么,这就是 HTML 锚点标签的用途。...Web 不就是这么工作的,怎么到了智能手机上就不一样了呢? 别再从后端向前端发送 JSON 了,我们不是构建 API。既然负责内容交付的客户端就是浏览器,那直接发送 HTML 啊,愣着干什么?...让所有用户输入验证都在服务器端进行。开发过程,尽量只通过一次接入服务器的消息往返即完成所有用户输入验证。没错,根本不需要 AJAX/JavaScript。...另外,任何不在服务器端进行的输入验证都属于错误!换言之,任何基于客户端的输入验证——无论是由 JavaScript 还是浏览器内置的 HTML 5 来实现——都可以被绕过,毕竟它们可都在客户端上。...另外,你真的需要什么统计数据?如果是,难道服务器端收集到的统计数据还不够?真正需要的信息大部分都可以服务器端直接收集,对吧?另外,如果选择跨服务器运行,日志还会被自动发送至日志服务器

38620
领券