拒绝所有但仅允许来自同一服务器上Angularjs的访问
我在同一台服务器上有一个Lumen后端和一个Angularjs项目,没有虚拟主机。我访问api的方式只是通过URL,如www.example.com/api/public/get_some_data。我想对公众隐藏这些端点,但只允许从Angularjs访问 我尝试将其添加到api/public文件夹中的.htaccess中拒绝所有但仅允许来自同一服务器上Angularjs的访问,angularjs,.htaccess,lumen,Angularjs,.htaccess,Lumen,我在同一台服务器上有一个Lumen后端和一个Angularjs项目,没有虚拟主机。我访问api的方式只是通过URL,如www.example.com/api/public/get_some_data。我想对公众隐藏这些端点,但只允许从Angularjs访问 我尝试将其添加到api/public文件夹中的.htaccess中 Order deny, allow Deny from all Allow from 127.0.0.1 但也会被拒绝 我从这个角度访问端点 function login(
Order deny, allow
Deny from all
Allow from 127.0.0.1
但也会被拒绝
我从这个角度访问端点
function login(user) {
return $http({
method: 'POST',
url: 'api/public/login/user',
data: user,
headers: {'Content-Type': 'application/json'}
}).then(function(response){
console.log(response);
localStorage.setItem('token', response.data.token);
}).catch(dataServiceError);
}
Angular是客户端框架。如果请求来自Angular应用程序或其他任何地方,则服务器没有区别 可以根据客户端应用程序可以满足的某些条件限制访问,例如请求头() 默默无闻的安全是最脆弱的安全形式,不应该依赖。在这种情况下,合适的解决方案是基本身份验证或基于令牌的身份验证
不过,如果入侵者可以访问Angular应用程序,他或她将自动获得对API端点的访问权,并可以从应用程序中提取身份验证信息。谢谢,伙计。这就是我想知道的。我已经实现了令牌身份验证。只想隐藏Angular用户使用的一些数据。如果入侵者有权访问该应用程序,则无法隐藏任何内容。另一方面,如果你担心任何人都可以在他/她的网站上使用这个API,那是另一个问题,CORS解决了这个问题。这是否意味着所有的角度代码实际上对用户是透明的,因为它在客户端?是的。客户端JS中没有安全性。如果客户端代码应该是安全的,则必须在服务器端对其进行密码保护(基本身份验证等)。