在客户端安全

时间:2018-02-03 02:45:23

标签: javascript reactjs security

1)将javascript放在客户端的一种方法是EJS,例如

    <h1> <%= title  %> </h1>

其中title是变量。

2)另一种方法是使用back ticks并使用像jQuery这样的库插入html或append等

    $('h1').html(`{obj.title}`);

3)第三种方法是使用react js esx,因此如果您沿着该路线下行并按如下方式添加变量,则导入客户端的所有文件:

     <div id="holder1"></diV>

     var title = React.createClass({
                      render: function(){
                         return(
                             <h1 className="title1">{this.props.title1}<h1>
                        )
                      } 
                 });
     ReactDOM.render(<title
             title1: "Hello World"  />,
             document.getElementById("holder1")
     );

我的问题是react.js如何处理安全性以便无法操纵javascript,例如客户端(非服务器端)的密码,以及1-2如何强制执行数据隐藏并阻止某人更改值。这只能使用节点使用服务器端react.js来完成。

让我澄清一下:React.js和其他javascript库如何使前端更安全......不仅仅是密码......可以使用bcrypt哈希和https来处理。

1 个答案:

答案 0 :(得分:0)

您所要求的并不完全清楚,但作为一般规则,客户端中的任何内容都不可信任。

从客户端发布到服务器的输入不可信,如果没有适当的预防措施,不应在以后显示。

网络安全是一个很大的话题。因此,我建议您将问题分解为更小的块,并确定您要问的内容。

关于React - 它没有对密码做任何特别的事情。后端服务层负责保护免受恶意输入 - React组件很有可能发回蹩脚/恶意数据。 (不是Reacts错误,也不是React的意图)

React在这方面唯一的问题是{} vs dangerouslySetInnerHtml,但同样,这不会保护密码等。