Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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
Javascript 在html源代码中公开输入标记是否不好?_Javascript_Html_Web_Instagram_Web Deployment - Fatal编程技术网

Javascript 在html源代码中公开输入标记是否不好?

Javascript 在html源代码中公开输入标记是否不好?,javascript,html,web,instagram,web-deployment,Javascript,Html,Web,Instagram,Web Deployment,我浏览了著名网站的页面源,如twitter、instagram、snapchat等。我发现所有这些网站的一个共同点是登录/注册页面的页面源中没有输入标签。事实上,根本没有表单标签。我不知道这是安全措施还是别的什么。有人能回答我这个问题吗?这是过度依赖客户端编程而没有服务器端渲染作为后备方案的副作用 它与安全无关。在web的早期,所有内容都存在于HTML代码中。这些页面上没有什么动态 随着历史的发展,页面变得越来越动态,JavaScript也越来越多。一些文档元素是通过JavaScript创建的,

我浏览了著名网站的页面源,如twitter、instagram、snapchat等。我发现所有这些网站的一个共同点是登录/注册页面的页面源中没有输入标签。事实上,根本没有表单标签。我不知道这是安全措施还是别的什么。有人能回答我这个问题吗?

这是过度依赖客户端编程而没有服务器端渲染作为后备方案的副作用


它与安全无关。

在web的早期,所有内容都存在于HTML代码中。这些页面上没有什么动态

随着历史的发展,页面变得越来越动态,JavaScript也越来越多。一些文档元素是通过JavaScript创建的,以响应某些用户事件(如向表中添加行)。这成为了一种模式,也扩展到了页面的初始构建:一些流行的库完全是围绕这个想法构建的。在极端情况下,HTML只包含一个
script
标记(除了
HTML
body
元素之外),JavaScript根据一些其他配置(在数据库、配置文件、JSON等中)完成生成页面的全部工作。它去掉了HTML设计,并将此职责转移到JavaScript


这不是安全问题。这只是一些框架的工作方式之一。

不错,这不是那些网站的工作方式。他们可能使用javascript前端应用程序并将数据发布到某种后端API来进行登录

输入标记来自web的旧版本,其中服务器准备页面,将其发送到浏览器,浏览器用户填写表单字段,将数据作为编码表单发送到服务器,服务器准备新的html块并将ti发送到浏览器。你会看到页面刷新时有不同的内容,而且大量的html一直在四处传播。浏览器使用了一些技巧使其看起来更无缝,但仍然有一种基本的工作方法,即替换整个页面

现代网络趋向于单页应用程序;使用javascript应用程序加载页面,脚本操纵浏览器文档以绘制UI,这样就再也不会出现服务器批量将整个页面发送到浏览器进行显示的情况。“脚本将一些数据(可能是json)发送到服务器,获取响应并以编程方式更新本地文档,使浏览器更改显示内容”

为此,浏览器已成为一个操作系统或开发环境,具有编程功能和访问本地资源(如网络摄像头和文件)的权限,并形成前端用户界面,后端服务器保存和处理使应用程序有价值(值得购买或使用)的数据。这不是关于安全性,而是关于为基于web的应用程序创建一个现代、动态和可用的UI。他们没有理由不能使用输入标签;浏览器中运行的javascript应用程序可以创建一个输入框,用户可以在其中键入内容,javascript应用程序可以从中提取值并将其发送到服务器(而不是表单)并获得响应。。只是他们不需要那样工作;通过各种方式获取用户输入、以各种方式将其发送到服务器并根据响应采取行动的自由度大大提高。我们不再拘泥于较旧的“将表单发布到服务器”的动态内容方式,我们已经很久没有拘泥于这种方式了,但最近出现了创建这些单页应用程序的真正好的框架和库,因此,我们越来越多地看到网站利用它们提供的好处,它们可能会带来不使用输入标签收集用户输入的方式——这些方式不受使用标签所带来的某些限制(可能是样式)

现代网络主要集中在终端用户体验上,用户界面更丰富、更流畅,传输的数据更少,响应速度更快等。在现代网络中,前端和后端(应该)之间的所有聊天都是通过HTTPS进行的(在高性能服务器和客户端的今天,加密的CPU成本相对较低)所以它至少和以前一样安全


TLDR;输入标签的使用频率较低,因为它们的使用频率较低,可能会给现代开发方式带来一些问题和障碍。它们并非天生不安全。

浏览器的页面源仅显示服务器上呈现的内容。我们称之为服务器端渲染。

如今,有了客户端呈现的概念,大部分网页都是在客户端生成的,使用了React.js等JavaScript框架。服务器只生成基本的HTML框架

因此,为了回答您的问题:为什么登录/注册页面的页面源中没有输入标记?-这是因为这些输入标记是使用Javascript在客户端生成的。这并不能减轻任何安全风险,因为仍然可以通过DOM检查器访问输入标记