Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从…起 到 理由 ) : ( ); } fetchSchedule=async()=>{ const selectSchedule=等待Scheduleservice.selectSchedule(); 等待这一天({ scheduleData:选择Schedule }) //log(“调度数据状态为”,this.State.scheduleData); //log(“本地数据源为”,Datasource.scheduleData); //console.log(“state is”,this.state) } componentDidMount=async()=>{ 等待此消息。fetchSchedule(); } render(){ const{match,location,history}=this.props; 返回( (this.scheduleObj=schedule)} //ref={(调度)=>console.log(“调度数据是”,调度)} cssClass='block-events' 宽度='100%' 高度='650px' selectedDate={new Date()} minDate={appController.previousDay(new Date())} showTimeIndicator={false} currentView='Day' resourceHeaderTemplate={this.resourceHeaderTemplate.bind( 这 )} actionBegin={this.onActionBegin.bind(this)} 事件设置={{ 数据源:this.dataManager, }} eventRendered={this.oneventrended.bind(this)} //团体={{ //enableCompactView:false, //资源:['Employee'], // }} //只读={true} 时间刻度={enable:true,interval:30,slotCount:1} editorTemplate={this.editorTemplate.bind(this)} > ); } } 使用路由器导出默认值(Voipcall)_Mysql_Node.js_Reactjs_Security - Fatal编程技术网

Mysql 从…起 到 理由 ) : ( ); } fetchSchedule=async()=>{ const selectSchedule=等待Scheduleservice.selectSchedule(); 等待这一天({ scheduleData:选择Schedule }) //log(“调度数据状态为”,this.State.scheduleData); //log(“本地数据源为”,Datasource.scheduleData); //console.log(“state is”,this.state) } componentDidMount=async()=>{ 等待此消息。fetchSchedule(); } render(){ const{match,location,history}=this.props; 返回( (this.scheduleObj=schedule)} //ref={(调度)=>console.log(“调度数据是”,调度)} cssClass='block-events' 宽度='100%' 高度='650px' selectedDate={new Date()} minDate={appController.previousDay(new Date())} showTimeIndicator={false} currentView='Day' resourceHeaderTemplate={this.resourceHeaderTemplate.bind( 这 )} actionBegin={this.onActionBegin.bind(this)} 事件设置={{ 数据源:this.dataManager, }} eventRendered={this.oneventrended.bind(this)} //团体={{ //enableCompactView:false, //资源:['Employee'], // }} //只读={true} 时间刻度={enable:true,interval:30,slotCount:1} editorTemplate={this.editorTemplate.bind(this)} > ); } } 使用路由器导出默认值(Voipcall)

Mysql 从…起 到 理由 ) : ( ); } fetchSchedule=async()=>{ const selectSchedule=等待Scheduleservice.selectSchedule(); 等待这一天({ scheduleData:选择Schedule }) //log(“调度数据状态为”,this.State.scheduleData); //log(“本地数据源为”,Datasource.scheduleData); //console.log(“state is”,this.state) } componentDidMount=async()=>{ 等待此消息。fetchSchedule(); } render(){ const{match,location,history}=this.props; 返回( (this.scheduleObj=schedule)} //ref={(调度)=>console.log(“调度数据是”,调度)} cssClass='block-events' 宽度='100%' 高度='650px' selectedDate={new Date()} minDate={appController.previousDay(new Date())} showTimeIndicator={false} currentView='Day' resourceHeaderTemplate={this.resourceHeaderTemplate.bind( 这 )} actionBegin={this.onActionBegin.bind(this)} 事件设置={{ 数据源:this.dataManager, }} eventRendered={this.oneventrended.bind(this)} //团体={{ //enableCompactView:false, //资源:['Employee'], // }} //只读={true} 时间刻度={enable:true,interval:30,slotCount:1} editorTemplate={this.editorTemplate.bind(this)} > ); } } 使用路由器导出默认值(Voipcall),mysql,node.js,reactjs,security,Mysql,Node.js,Reactjs,Security,要记住三件事: 使用https://将数据传送到用户的浏览器。网络爬虫很难截获以这种方式传送的数据 确保每个用户只接收他们自己的数据,或他们有权查看的数据。不要依赖前端代码向用户B隐藏用户A的数据。这不会起作用,因为任何用户都可以在devtools的“网络”选项卡中查看您的请求和响应。您通常使用与每个登录用户绑定的难以猜测的会话令牌来执行此操作 不要让web服务器返回您不希望浏览器用户看到的任何数据 谢谢你的建议。在生产中,我使用的是https,但我认为我最终要做的只是从后端选择ID,并将

要记住三件事:

  • 使用https://将数据传送到用户的浏览器。网络爬虫很难截获以这种方式传送的数据

  • 确保每个用户只接收他们自己的数据,或他们有权查看的数据。不要依赖前端代码向用户B隐藏用户A的数据。这不会起作用,因为任何用户都可以在devtools的“网络”选项卡中查看您的请求和响应。您通常使用与每个登录用户绑定的难以猜测的会话令牌来执行此操作

  • 不要让web服务器返回您不希望浏览器用户看到的任何数据


  • 谢谢你的建议。在生产中,我使用的是https,但我认为我最终要做的只是从后端选择ID,并将其显示给所有用户查看,而不是个人信息,这些信息应该仍然显示在调度程序上。这样可以吗?事实上我知道了。我刚刚修改了后端的select语句,只选择了仍然显示在调度程序上的ID,并删除了所有包含其他用户个人信息的select语句。是的,就是这样。在处理REST端点以向应用程序交付数据时,请始终了解用户的ID,并始终使用
    WHERE ID=?
    作为您知道的ID。