小编Jer*_*oen的帖子

如何从iptables中删除特定规则?

我分别在端口8006和8007上托管特殊的HTTP和HTTPS服务.我用iptables来"激活"服务器; 即路由传入的HTTP和HTTPS端口:

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006 
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007  
iptables -A OUTPUT -t …
Run Code Online (Sandbox Code Playgroud)

linux firewall iptables

308
推荐指数
6
解决办法
37万
查看次数

Github:只读访问私人仓库

我正在Github上开发一些私有项目,我想在我的部署服务器上添加夜间cronjobs以从github中提取最新版本.我目前正在通过在每个部署服务器上生成密钥对并将公钥作为"部署密钥"添加到github项目来实现此目的.

但是,我最近发现这些部署密钥确实具有对项目的写访问权.因此,每个服务器管理员都可能开始编辑.此外,我可以将每个部署密钥仅添加到一个存储库,而我希望能够在同一个部署服务器上部署多个存储库.

有没有办法为Github上的选定用户提供私有存储库的只读访问权限?

git collaboration github readonly public-key

133
推荐指数
2
解决办法
7万
查看次数

在Javascript中处理浮点精度

y在javascript中有大量的数值.我想通过将它们舍入到最接近的倍数来对它们进行分组x,并将结果转换为字符串.

如何绕过恼人的浮点精度?

例如:

0.2 + 0.4 = 0.6000000000000001
Run Code Online (Sandbox Code Playgroud)

我尝试了两件事:

>>> y = 1.23456789 
>>> x = 0.2 
>>> parseInt(Math.round(Math.floor(y/x))) * x; 
1.2000000000000002
Run Code Online (Sandbox Code Playgroud)

和:

>>> y = 1.23456789 
>>> x = 0.2 
>>> y - (y % x)
1.2000000000000002
Run Code Online (Sandbox Code Playgroud)

javascript floating-point double floating-accuracy numerical-methods

83
推荐指数
3
解决办法
16万
查看次数

何时启用CORS是安全的?

我正在开发一个JSON/REST Web API,我特别希望第三方网站能够通过AJAX调用我的服务.因此,我的服务是发送着名的CORS标题:

Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)

这允许第三方站点通过AJAX调用我的服务.到目前为止都很好.

但是,我的web api的一个子部分是非公开的,需要身份验证(OAuth和access_token cookie非常标准).在我的网站的这一部分启用CORS是否安全?

一方面,如果第三方网站可以拥有也与我的这部分服务进行交互的ajax客户端,那将会很酷.但是,首先存在相同原产地政策的原因是这可能存在风险.您不希望之后访问的任何网站能够访问您的私人内容.

我担心的情况是用户登录我的网络API,无论是在网站上还是通过他信任的网站,他忘记退出.这会允许他之后使用现有会话访问其私人内容吗?

所以我的问题:

  • 在非公开内容上启用CORS是否安全?
  • 如果启用CORS的服务器通过cookie设置session_token,该cookie是否会保存在CORS服务器或主网页服务器的域下?

security ajax web-services cross-domain cors

68
推荐指数
2
解决办法
3万
查看次数

在IE8/9中使用jQuery和XDomainRequest的CORS

更新:我强烈建议不要在XDomainRequest中投入任何时间,因为它是一个非常糟糕的实现,有很多限制.它基本上只适用于对非ssl服务器的GET请求,所以你不妨使用jsonp或其他什么.


我使用CORS来调用跨域API,但Internet Explorer提出了问题.通过XDomainRequest对象在IE8和IE9中应该可以使用CORS ,但是我无法使用它.

JQuery 拒绝为XDomainRequest提供本机支持,但是建议使用几个jQuery插件来添加此支持.本主题提出了两个这样的插件:jQuery.XDomainRequest.jsxdr.js,已经报告可以使用.Afaik,插件应该自动覆盖行为jQuery.ajax.我在这里找到了另一个插件.

我把一些演示页面与相应的插件jQuery.XDomainRequest以及xdrjquery.ie.cors放在一起,它们对启用CORS的服务器执行ajax请求.这些页面在Chrome和Firefox中运行,但IE8/9会立即抛出权限被拒绝错误(甚至在发出请求之前).这个MSDN帖子建议添加另一个处理程序,xhr.onprogress = function() {};但我尝试了这个,它也没有工作.

什么线索我做错了什么?我现在也使用MS8虚拟服务器测试IE8,但它有完全相同的问题.

编辑:好的所以我发现问题的一部分是我通过HTTPS使用POST.显然XDomainRequest不允许通过HTTPS使用CORS.我可以切换到HTTP,但我真的需要POST.

编辑2:本故事结束时,请在github上查看此问题.事实证明,当使用HTTP POST时,xDomainRequest只能将请求体(参数)编码为text/plain.这几乎使它变得毫无价值,因为每个人都使用application/x-www-form-urlencodedmultipart/form-data.

jquery cors internet-explorer-9 xdomainrequest

62
推荐指数
2
解决办法
6万
查看次数

脱机安装R包和依赖项

假设我需要在没有互联网连接的(Linux)机器上安装许多软件包.假设我下载了一份cr并将其刻录在我带到离线位置的DVD上:

wget ftp://cran.r-project.org/pub/R/src/contrib/*.tar.gz
Run Code Online (Sandbox Code Playgroud)

我甚至可以添加一个PACKAGES文件,其中包含所有源包及其依赖项的概述:

library(tools)
write_PACKAGES()
Run Code Online (Sandbox Code Playgroud)

我如何使用此脱机来安装源包,以便从本地文件中解析和安装依赖项?例如,有人想安装包ggplot2,它具有相当深的依赖结构.假设ggplot2的源包及其所有依赖项在当前工作目录中作为源包提供.如果我做:

install.packages("ggplot2_0.9.1.tar.gz", repos=NULL)
Run Code Online (Sandbox Code Playgroud)

这会导致错误,因为根本没有解决依赖关系.或者:

install.packages(list.files(pattern="*.tar.gz"), repos=NULL)
Run Code Online (Sandbox Code Playgroud)

但是,这也忽略了依赖结构,并尝试按字母顺序安装软件包,这也将失败.

我看着available.packagescontrib.url,但我不能找到一个本地文件安装一个源代码包,包括它的依赖的一个例子.

r cran

57
推荐指数
1
解决办法
3万
查看次数

用简单的ascii代替重音字符

我需要将姓氏列表转换为字母数字用户名,但不幸的是其中一些包含非ascii字符:

Hernández
Quermançós 
Migueláñez
Run Code Online (Sandbox Code Playgroud)

现在,一种方法就是使用正则表达式删除任何非字母数字字符,例如a.replace(/[^a-z0-9]/gi,'').然而,一个更直观的解决方案(至少对于用户来说)将用他们的"普通"等效替换重音字符,例如转á,áaçc等等.有没有一种简单的方法在javascript中执行此操作?

javascript regex string utf-8

38
推荐指数
3
解决办法
7万
查看次数

监视R中的内存使用情况

是否可以监视正在使用或已被R用于调用函数的内存量?例如,我有一个任意函数,例如:

smallest.sv <- function(){
  A <- matrix(rnorm(1e6), 1e3);
  mysvd <- svd(A);
  return(tail(mysvd$d, 1));
}
Run Code Online (Sandbox Code Playgroud)

运行该函数只返回一个标量,但是使用了大量的内存来计算函数.现在我需要进行性能基准测试.处理时间很简单:

system.time(x <- smallest.sv())
Run Code Online (Sandbox Code Playgroud)

但是我还想知道这个调用需要多少内存,而不需要修改函数(它应该适用于任意函数).有没有办法做到这一点?

编辑:澄清一下.我最感兴趣的是在函数调用期间使用的内存上限,即需要多少物理内存才能处理函数调用.在许多情况下,这远远低于我认为的分配内存总量.

r

36
推荐指数
3
解决办法
1万
查看次数

调用系统后,makePSOCKcluster在win x64上挂起

我遇到一个难以调试的问题,makePSOCKclusterparallel包装上的Windows [R 64.它不会发生在Windows上的R i386上,也不会发生在任何OSX或Linux上.不幸的是,它不会一直发生,只是偶尔而且非常随机.

发生的是该makePSOCKcluster函数超时并冻结R会话,但只有在会话的早期执行了一些(任意)system()调用.下面的视频和脚本更清楚地说明了问题.

我试过的一些东西没有成功:

  • 禁用防病毒/防火墙.
  • 在呼叫system和等待之间等待几秒钟makePSOCKcluser.
  • 使用不同的系统调用.

我怎样才能进一步缩小范围?这里视频视频中使用的脚本是:

cmd_exists <- function(command){
  iswin <- identical(.Platform$OS.type, "windows"); 
  if(iswin){
    test <- suppressWarnings(try(system(command, intern=TRUE, ignore.stdout=TRUE, ignore.stderr=TRUE, show.output.on.console=FALSE), silent=TRUE));
  } else {
    test <- suppressWarnings(try(system(command, intern=TRUE, ignore.stdout=TRUE, ignore.stderr=TRUE), silent=TRUE));    
  }
  !is(test, "try-error")
}

options(hasgit = cmd_exists("git --version")); 
options(haspandoc = cmd_exists("pandoc --version"));  
options(hastex = cmd_exists("texi2dvi --version"));
cluster <- parallel::makePSOCKcluster(1);
Run Code Online (Sandbox Code Playgroud)

windows r cran

36
推荐指数
1
解决办法
1043
查看次数

如何在ggplot2中创建Marimekko/Mosaic图

当x和y都是分类变量时,Marimekko/Mosaic图是一个很好的默认图.使用ggplot创建这些内容的最佳方法是什么?

例

我能找到的唯一参考是这个4yo 博客文章,但这似乎有点过时了.现在是否有更好或更简单的实施方法可供选择?GGally包有一个功能,ggally_ratio但这会产生一些完全不同的东西:

ggally

r ggplot2

32
推荐指数
5
解决办法
2万
查看次数