Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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注释是否存在安全风险?_Javascript_Security_Comments_Owasp - Fatal编程技术网

Javascript注释是否存在安全风险?

Javascript注释是否存在安全风险?,javascript,security,comments,owasp,Javascript,Security,Comments,Owasp,在最近的PCI审计中,审计人员说我们存在重大安全风险,因为 可以从我们的网站下载静态资源,如图像css和javascript,而无需事先验证 我们的javascript中有注释 我个人认为这根本不是安全风险。图像css和javascript不是动态创建的,它们在我们的后端、客户详细信息和机制上不包含任何数据 javascript中的注释只是简单地解释了javascript文件中的方法的作用。任何读过JS的人都会发现的 这是怎么显示的 javascript中的注释真的是一种安全风险吗?根据审计的严

在最近的PCI审计中,审计人员说我们存在重大安全风险,因为

  • 可以从我们的网站下载静态资源,如图像css和javascript,而无需事先验证
  • 我们的javascript中有注释
  • 我个人认为这根本不是安全风险。图像css和javascript不是动态创建的,它们在我们的后端、客户详细信息和机制上不包含任何数据

    javascript中的注释只是简单地解释了javascript文件中的方法的作用。任何读过JS的人都会发现的

    这是怎么显示的


    javascript中的注释真的是一种安全风险吗?

    根据审计的严格程度,在没有身份验证的情况下下载图像等可能被视为一种安全风险(想想图表、图表……)


    删除javascript中的注释就像混淆代码一样:这会使代码更难理解,但也不是不可能理解发生了什么。无论如何,JavaScript应该被看作是增强的,所有的安全性都应该在服务器端(复制)让任何人了解JS的功能都不应被视为风险

    如果不了解JS是否存在安全风险,请缩小生产环境中的JS,这将防止“信息泄漏”,并帮助(至少在某种程度上)确保网站信息的安全


    关于安全风险,我不认为JS评论有任何风险,每个网站内容(静态)都可以在没有身份验证的情况下下载。(除非另有定义)

    如果它们仅显示代码的工作方式,则不会显示。无论如何,任何有足够决心的人都会发现这一点


    也就是说,缩小JavaScript可能是个好主意;不是因为安全性,而是因为它会减少下载时间,从而使您的站点更具响应性。

    JavaScript评论可以。这取决于您的逻辑,但由于它是公开的,因此您可以更直观地了解代码的工作方式

    删除此项还有其他原因,例如文件大小,以及下载大小


    诸如d之类的工具可以帮助您删除注释,并使代码从粗略的混乱中恢复。

    这取决于注释的内容。因为在没有人为干预的情况下,没有办法检查注释的内容以确定它们是否有风险,所以最有效的审计方法是将面向客户机的源代码中的所有注释声明为有风险的

    以下是潜在风险评论的示例

    // doesn't really authenticate, placeholder for when we implement it.
    myServer.authenticate(user,pass);
    

    另一个例子可能是,如果您包含一个源代码历史记录头,那么有人可能会通过检查已修复的各种错误来发现一些安全弱点。至少,如果一个破解者知道哪些攻击向量已经关闭,他可能能够更好地瞄准他的攻击


    现在,不管怎么说,所有这些例子都是不好的实践(包括注释和代码),防止这种情况发生的最好方法是让代码审查和优秀的程序员。第一个例子特别糟糕,但对您的队友发出的无害警告(如第二个例子)或注释掉的调试代码(如第三个例子)都是可能从网络中漏掉的安全漏洞。

    第一点是安全风险,但我不会称之为重大风险。另一方面,Javascript注释是否存在安全风险?这让我笑了。这肯定不是最优的,但不是安全风险。继续使用它将删除注释和所有不必要的空白。这里的重点是,注释是否包含任何不能从代码本身推断的内容?例如内部服务器的组织方式(任何关于单独数据库服务器、服务器名称或类似内容的注释)可能会带来安全风险。同样,代码本身也可以,如果它能让你得出这样的结论的话。@roe:像这样吗?=)坦率地说,你的审计员是个白痴,显然对安全一无所知。为了你/你的公司,我希望他们在造成太大损害之前被解雇。我同意动态创建资源(图表等)的安全性,但这里的情况根本不是这样。我们正在谈论背景图像、徽标等@Wes;身份验证页不需要这些吗?:)+1.对如果这些图片(比如说)在公共网站上对任何人都不公开,那么可以说,拥有正确URL的任何人都不应该公开这些图片。对于任何静态内容(如文档)也是如此,它们被上传到服务器,有些用户(但不是所有用户)可以从网站下载。找出URL不应该使安全检查短路。根据你的第二段,这对css和js文件来说并不重要。@roe实际上不在我们的例子中,也不在大多数资源中。我同意JSMin的观点,我想将其构建到我们的构建中,但这不是本例中的问题。是的,这些文件过于冗长,可以重构成更小更有效的方法。(不是我的代码)但归根结底,我们最关心的是安全性。难道没有自动代码格式化程序(我个人还没有遇到过任何可行的程序)可以接受精简的代码并使其可读吗?我认为缩小规模是大流量网站节省带宽的好方法,但与安全性无关。我们应该在客户端不可信的假设下设计应用程序,并且任何攻击者都已经完全理解您的客户端代码和任何未加密的客户端-服务器通信。我不是说没有人能够读取代码,这只是一种快速删除所有注释的方法,只需看一眼就可以让它变得不那么易读,而且你不应该期望得到更多
    // don't forget to include the length, 
    //the server complains if it gets NaN or undefined.
    function send_stuff(stuff, length) {
    ...
    }
    
    function doSomething() {
        querystring = ""
        //querystring = "?TRACING_MODE=true&"
        ...
        //print_server_trace();
    }