小编Mar*_*zee的帖子

React + Flux:将初始状态变为商店

我们最近从Angular切换到React + Flux来构建一个相当复杂的业务应用程序.

采用一个容器组件将所有状态作为属性传递给组件树的方法不是为我们开发应用程序的实用方法,因为应用程序使用大型页面模式.足够的状态确实传递给他们将模型加载到他们的商店的模态.

我遇到的问题是我需要将一些初始状态(作为道具传递下来)放入模态组件的商店中.在这篇文章中,Facebook上的好人说,当同步不是目标时,可以使用道具作为初始状态.

这就是我目前将初始状态输入我的商店的方式:

var ABC = React.createClass({
  ...  
  getInitialState: function() {
    return ABCStore.getInitialABCState(this.props.initialA);
  },
  ...

var ABCStore = Reflux.createStore({
  ...
  init: function() {
    _state = {
      a: null,
      b: 'B init',
      c: 'C init'
    };
  },

  getInitialABCState: function(initialA) {
    _state.a = initialA;
    return _state;
  },

  getABCState: function() {
    return _state;
  }
  ...
Run Code Online (Sandbox Code Playgroud)

我不确定这样做的最佳做法是什么,或者这是否是Flux反模式?

javascript reactjs reactjs-flux refluxjs

13
推荐指数
1
解决办法
8854
查看次数

GWT和XSRF保护

我正在寻找保护我的GWT应用程序免受XSRF攻击的可能解决方案.

如果我正确理解了GWT的解决方案 - 它提供了一个Servlet,您可以使用该Servlet在客户端生成令牌(在调用RPC端点时)并在服务器端验证(当呼叫到达您的服务时).

此解决方案是否仅适用于RPC调用?当然我们需要它来覆盖所有用户生成的服务器请求?

任何其他推荐的XSRF解决方案(我也在关注OWASP的CSRFGuard)?

gwt rpc csrf owasp

7
推荐指数
1
解决办法
2140
查看次数

contenteditable div:IE8不满意退格删除HTML元素

我正在使用一个contenteditable div结合rangy Javascript库在光标位置插入HTML.

div的内容通常如下所示:

<div contenteditable="true">
    "Hello "
    <button contenteditable="false" data-id="147">@John Smith</button>
    " "
</div>
Run Code Online (Sandbox Code Playgroud)

按"@"后会建议用户,并在选择后随后插入按钮(ala Google Plus).我也在&nbsp;这个按钮后插入一个.

当您按下退格键(首先删除之后&nbsp;)时,Chrome/Safari/Firefox中的按钮会被删除,但不会在IE8中删除.在IE8中,光标只是跳过按钮而不删除它.IE8中更奇怪的是,如果你将&nbsp;按钮放在按钮旁边 - 而是将光标放在按钮旁边 - 它会移除退格键上的按钮.所以当&nbsp;光标右侧有一个时,它很高兴.

有没有人知道我需要什么才能使IE8工作,删除退格按钮而不需要&nbsp;光标右侧?(关于这种奇怪行为的一些信息也可能有帮助)

PS我还没有测试过其他版本的IE

javascript html5 contenteditable internet-explorer-8 rangy

7
推荐指数
1
解决办法
4418
查看次数

GWT SafeHTML,XSS和最佳实践

OWASP的优秀人员强调,您必须使用转义语法来处理您将不受信任的数据放入HTML文档的部分(正文,属性,JavaScript,CSS或URL).见OWASP - XSS.他们的API(由ESAPI团队开发)随后迎合了每个上下文的编码器:

ESAPI.encoder().encodeForHTML("input"); ESAPI.encoder().encodeForHTMLAttribute("input"); ESAPI.encoder().encodeForJavaScript("input"); ESAPI.encoder().encodeForCSS("input"); ESAPI.encoder().encodeForURL("input");

随后,这允许开发人员满足基于DOM的XSS.

所以我的问题是GWT的safehtml包如何迎合这一点,还是只关注HTML编码?

security xss gwt owasp

5
推荐指数
1
解决办法
3882
查看次数

为新的精益团队提供Git分支策略

我们有一个网络应用程序,我们有几个企业客户.我们最近决定将其作为SaaS应用程序提供,并遵循精益方法(与我们的公司产品并行).这意味着我们在旅途中进行了可能无法投入生产的实验.

在我们精益求精之前,我们对以下分支策略感到满意(我相信它非常标准):

  • 掌握 - 永远稳定
  • 开发 - 经常不稳定(功能分支切断开发新功能进入下一个主要版本)
  • major_release_x - live(在dev被合并到master之后切断master,这是bug修复发生并合并回master和dev的地方)

现在我们除了上面的内容之外还有以下内容,并且效果不佳:

  • lean_release_branch - live(切断major_release_x并包含实验)
  • experiment_x - 切断major_release_x(这是我们一起攻击该功能然后将其合并到lean_release_branch的地方)

我们现在的情况是,我们需要快速而且经常在精益方法的指示下发布,当我们对任意事物得到可靠的反馈时,我们需要生成它并尽快释放它(从lean_release_branch开始).

问题是我们无法创建dev的功能分支(因为它很可能不稳定),我们无法创建lean_release_branch的功能分支,原因有两个:

  1. 它已被实验代码污染,因此此更改/功能将无法恢复到主控
  2. lean_release_branch总是需要准备发布的,所以我们不能忙着做它的测试和修正,如果有需要进行固定和释放的关键问题(合并更改/功能进去后)

有谁知道我们的设置更好的策略?

git branch branching-strategy git-branch

5
推荐指数
1
解决办法
299
查看次数

CSS - 具有高度和最大高度的div的行为

如果你有一个div:

<div id="test">
  <img src="http://..." />
</div>
Run Code Online (Sandbox Code Playgroud)

使用CSS:

#test {
  height: x;
  max-height: x + y;
  overflow: auto;
}
Run Code Online (Sandbox Code Playgroud)

是否可以安全地假设div总是超过x的初始高度并且在x + y处停止增长(并开始滚动),因为高度为x + y + z的图像会加载?

如果没有,我将如何在现代浏览器中始终如一地实现此行为?

html css css3

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