Tag: 安全性

使用PHP / Apache来限制对静态文件(html,css,img等)的访问

比方说,你有很多的HTML,CSS,JS,IMG等文件在您的服务器上的目录。 通常,互联网用户可以通过input完整的URL来访问这些文件,例如http://example.com/static-files/sub/index.html 现在,如果您只希望授权用户能够加载这些文件呢? 对于这个例子,可以说你的用户首先从这样的URLlogin: http : //example.com/login.php 你将如何让login的用户查看index.html文件(或“静态文件”下的任何文件),但将文件限制在其他人? 到目前为止,我已经提出了两个可能的解决scheme: 解决scheme1 在“静态文件”下创build以下.htaccess文件: Options +FollowSymLinks RewriteEngine on RewriteRule ^(.*)$ ../authorize.php?file=$1 [NC] 然后在authorize.php … if (isLoggedInUser()) readfile('static-files/'.$_REQUEST['file']); else echo 'denied'; 这个authorize.php文件非常简单,但你明白了。 解决scheme2 在“静态文件”下创build以下.htaccess文件: Order Deny,Allow Deny from all Allow from 000.000.000.000 然后,我的login页面可以为每个login的用户附加.htaccess文件。显然,这也需要有一些清理例程来清除旧的或不再使用的IP。 我担心我的第一个解决scheme可能会在服务器上变得相当昂贵,因为他们正在访问的用户数量和文件数量会增加。 我认为我的第二个解决scheme将会更便宜,但是由于IP欺骗等原因,它也不太安全。我担心,如果同时存在许多用户,将这些IP地址写入htaccess文件可能会成为应用程序的瓶颈。 哪个解决scheme听起来更好,为什么? 另外,你能想到一个完全不同的解决scheme,比这两个都好吗?

MVC 6绑定属性消失?

请原谅我的noob问题,但我注意到绑定属性不再作为控制器模板默认出现在MVC 6中。 我知道我的属性仍然存在,但我们仍然需要使用它们吗? 我听说他们可以用来防止过度发布攻击。 他们是否删除它,因为MVC 6可以找出方法来防止这种情况,而不使用它们? 还是有更安全的方法来防止这种情况?

Android SharedPreference安全性

我想知道共享偏好安全。 是否有可能获得对共享首选项的访问,即使它们是在MODE_PRIV(0)中创build的? 是否有可能列出所有可用的共享首选项,然后从其他应用程序获取所有设置? sharedpreferences是放置敏感数据的好地方,例如密码或授权令牌? 谢谢

在父上下文中声明Spring Bean与子上下文

我有一个spring bean(dao)对象,我通过下面的xml在我的ServletContext中实例化: <bean id="userDao" class="com.company.dao.impl.UserDaoImpl"> <property name="sessionFactory" ref="sessionFactory" /> </bean> 这个bean是在我的webapp-servlet.xml文件中声明的,并被我的应用程序在ServletContext中使用。 我也使用SpringSecurity。 这是我的理解,它运行在不同的上下文(SecurityContext)。 我的应用程序有一个webapp-security.xml,我实例化一个自定义身份validation提供程序。 我想使用我的应用程序中使用我的dao也做我的安全上下文中的用户查找,但是当我运行: <bean id="userAuthenticationProvider" class="com.company.security.UserAuthenticationProvider"> <property name="userDao" ref="userDao" /> </bean> 我得到的错误说,没有这样的bean“userDao”。 这个bean在我的其他上下文中声明的bean中自动assembly,但不在我的安全上下文中。 根据Spring文档,我相信web.xml中需要两个独立的上下文 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <listener> <listener-class> org.springframework.security.web.session.HttpSessionEventPublisher </listener-class> </listener> 所以我的问题是,我怎样才能访问我的我的SecurityContext中的我的ServletContext居住的DAO? 有我的道的范围修饰符,或者我可以以某种方式在我的身份validation提供程序在运行时获取ServletContext? 作为参考,这是我想如何在我的身份validation提供程序中使用它: public class UserAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider { @Override protected UserDetails retrieveUser(String userName, UsernamePasswordAuthenticationToken authenticationToken) throws AuthenticationException { // […]

如何通过reflection访问私有方法和私有数据成员?

我知道我们可以通过reflection访问私人构造函数@Sanjay T. Sharma在他的回答中提到我的问题: “instanceof Void”是否总是返回false? 不过, @duffymo 说 : 你可以用reflection访问私有的东西 – 方法,构造函数,数据成员,一切。 我如何访问私有方法和私有数据成员? 是否有可能通过reflection访问本地variables? 有没有办法阻止任何人访问私人构造函数,方法和数据成员?

在github中处理密码的最佳做法是什么?

我有一个Bash脚本,用于访问twitter并在特定情况下popup一个Growl通知。 什么是最好的方式来处理与脚本存储我的密码? 我想在GitHub上发布这个脚本,但是我想知道在这样做的时候保持我的login名/密码是否是私有的最好方法是。 目前密码保存在脚本本身中。 我推不动,因为所有旧的提交将包含密码。 没有密码的开发不是一种select。 我想我应该把密码存储在一个外部configuration文件中,但是我想在我尝试并把一些东西放在一起之前,检查是否有一个确定的方法来处理这个问题。

ssl证书如何validation?

安全validationssl证书所需的一系列步骤是什么? 我(非常有限)的理解是,当你访问https站点时,服务器向客户端(浏览器)发送一个证书,浏览器从该证书获取证书的颁发者信息,然后用它来联系发布者,证书的有效性。 这到底如何? 那么这个过程如何使它免于中间人攻击呢? 什么阻止了一些随机的人build立他们自己的validation服务来使用中间人攻击,所以一切看上去都是安全的?

mysql_real_escape_string()做了什么,addslashes()不?

为什么我们需要像mysql_real_escape_string()这样的数据库特定的函数? 它能做些什么,addslashes()不? 忽略参数化查询的优越select,是一个使用addslashes()的webapp,它仍然很容易受到SQL注入的攻击,如果是的话,怎么样?

PHP MySQLI阻止SQL注入

我已经build立了一个网站,将很快上线,只是有一些关于防止SQL注入的问题,我明白如何使用mysqli_real_escape_string但我只是想知道是否我必须使用所有我得到的variables我的SQL语句,我必须使用它时,我还做select语句还是只插入更新和删除? 还有什么其他的安全性,你会build议我实施之前,我把网站住,预先感谢任何帮助!

为什么通过默默无闻的安全性是一个坏主意?

我最近遇到一个系统,所有的数据库连接都是以各种方式遮蔽的例程来pipe理的,包括base64编码,md5sums和其他各种技术。 这只是我,还是这个矫枉过正? 有什么select?