Tag: 安全性

什么是在Visual Studio中使用的App_Data文件夹?

在Visual Studio中创build新的ASP.NET应用程序时,会自动创build几个文件和文件夹。 其中一个文件夹被称为App_Data 。 另外,通过select菜单选项“生成” – Build->Publish网站时,可以使用checkboxInclude files from the App_Data folder 。 我正确地认为放在这个文件和它的子文件夹的文件不会通过networking访问吗? 例如,是否可以安全地放入我只打算由应用程序代码使用的文件夹资源? App_Data文件夹的实际用途是什么? 编辑: 谢谢你所有的答案。 从迄今收到的答复中,我主要提到两点: App_Data本质上是基于文件的数据存储的存储点 它不应该可以通过网页浏览,并且是Web应用程序存储和读取数据的地方 会有人能够指定如何确保“不可见的networking”? 执行标准部署时,我可以依靠这个事实吗?还是需要检查服务器上的一些IIS设置。 在我有一套pdf文件的情况下,我想只能从应用程序访问。 将App_Data文件夹是正确的地方使用,或者我应该创build一个单独的文件夹并手动设置IIS,以确保它不能通过networking访问?

防御mysql注入和跨站点脚本的最佳方式

目前,我申请了一个“把所有东西都扔在墙上,看看有什么坚持”的方法来阻止上述问题。 以下是我拼凑起来的function: function madSafety($string) { $string = mysql_real_escape_string($string); $string = stripslashes($string); $string = strip_tags($string); return $string; } 不过,我确信有更好的方法来做到这一点。 我正在使用FILTER_ SANITIZE_STRING,这似乎并不完全安全。 我想我在问,你们采用哪种方法,他们有多成功? 谢谢

分机页面中的angular度更改会导致“不安全:”

我正在尝试使用angular度与应用程序的列表,每个人都是一个链接,更详细地看到一个应用程序(apps / app.id): <a id="{{app.id}}" href="apps/{{app.id}}" >{{app.name}}</a> 每次点击其中一个链接时,Chrome浏览器都会显示该url为不安全:chrome-extension://kpbipnfncdpgejhmdneaagc…../apps/app.id 不安全从哪里来?

查询string参数在HTTPS(HTTP + SSL)中是否安全?

与请求一起发送时,查询string参数是否使用HTTPS进行encryption?

为什么需要JsonRequestBehavior?

为什么需要Json Request Behavior ? 如果我想限制HttpGet请求到我的行动,我可以用[HttpPost]属性装饰行动 例: [HttpPost] public JsonResult Foo() { return Json("Secrets"); } // Instead of: public JsonResult Foo() { return Json("Secrets", JsonRequestBehavior.AllowGet); } 为什么不是[HttpPost]足够? 为什么框架为我们所拥有的每个JsonResult提供了JsonRequestBehavior.AllowGet 。 如果我想拒绝请求,我将添加HttpPost属性。

如何解决SSL证书服务器名称/我可以使用keytool添加替代名称?

为了清楚起见,这些表述可能是单独的问题,但它们都涉及同一个问题。 如何解决SSL证书服务器名称? 为什么浏览器似乎使用证书的CN域,但是Java的机制似乎只能看“主体替代名”? 是否有可能使用keytool向SSL证书添加替代名称? 如果没有,是使用openSSL而不是一个好的select? 只是一点点的背景:我需要一个主服务器使用HTTPS与几台服务器进行通信。 显然,我们不想为每个服务器购买SSL证书(可能有很多),所以我想使用自签名证书(我一直在使用keytool来生成它们)。 在操作系统中添加可信的证书之后,浏览器(IE和Chrome)高兴地将连接接受为可信。 但是,即使在将证书添加到Java的cacerts之后,Java仍然不会将该连接接受为可信,并引发以下exception: 导致:java.security.cert.CertificateException:在sun.security.util.HostnameChecker.match(HostnameChecker.java:75)处的sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:142)在com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:250)com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(X509T rustManagerImpl.java:264)。 sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien tHandshaker.java:1185)… 14更多 我发现我可以让Java信任实施我自己的HostNameVerifier的证书,我从这里复制了这个证书: com.sun.jbi.internal.security.https.DefaultHostnameVerifier只是为了testing(顺便说一句,作为parameter passing给主机名HostnameVerifier是正确的,所以我认为它应该被接受)。 我一直使用证书字段CN作为主机名(通常是IP地址)。 任何人都可以告诉我,如果我做错了什么,并指出我在正确的方向吗?

htmlspecialchars和mysql_real_escape_string保持我的PHP代码安全注入?

今天早些时候,有人问到在web应用程序中inputvalidation策略的问题。 在撰写本文的时候,最好的答案是在PHP使用htmlspecialchars和mysql_real_escape_string 。 我的问题是:这足够吗? 还有更多我们应该知道的吗? 这些function在哪里分解?

最终的清洁/安全function

我有很多来自$_GET和$_POST的用户input…现在我总是写mysql_real_escape_string($_GET['var']) .. 我想知道你是否可以做一个函数来保护,逃避和清理$_GET / $_POST数组,所以你不必每次处理用户input等都要处理它。 我正在考虑一个函数,例如cleanMe($input) ,在它里面,它应该执行mysql_real_escape_string , htmlspecialchars , strip_tags , stripslashes (我认为这将全部使它变得干净和安全),然后返回$input 。 那么这可能吗? 制作一个适用于所有$_GET和$_POST的函数,所以你只能这样做: $_GET = cleanMe($_GET); $_POST = cleanMe($_POST); 所以在你的代码中,当你使用例如$_GET['blabla']或者$_POST['haha'] ,它们是安全的,剥离的等等? 试了一下自己: function cleanMe($input) { $input = mysql_real_escape_string($input); $input = htmlspecialchars($input, ENT_IGNORE, 'utf-8'); $input = strip_tags($input); $input = stripslashes($input); return $input; }

准备好的语句如何防止SQL注入攻击?

准备好的语句如何帮助我们防止SQL注入攻击? 维基百科说: 准备好的语句对SQL注入是有弹性的,因为稍后使用不同的协议传输的参数值不需要被正确地转义。 如果原始语句模板不是从外部input派生的,则不会发生SQL注入。 我看不出原因。 简单的英语和一些例子,简单的解释是什么?

PreparedStatement IN子句的替代?

什么是使用SQL IN子句与java.sql.PreparedStatement实例,由于SQL注入攻击安全问题,多个值不支持什么是最好的解决方法:一? 占位符表示一个值,而不是一个值列表。 考虑下面的SQL语句: SELECT my_column FROM my_table where search_column IN (?) 使用preparedStatement.setString( 1, "'A', 'B', 'C'" ); 本质上是一个非工作的尝试在解决使用的原因? 首先。 什么解决方法可用?