Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
拒绝所有但仅允许来自同一服务器上Angularjs的访问_Angularjs_.htaccess_Lumen - Fatal编程技术网

拒绝所有但仅允许来自同一服务器上Angularjs的访问

拒绝所有但仅允许来自同一服务器上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(

我在同一台服务器上有一个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(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中没有安全性。如果客户端代码应该是安全的,则必须在服务器端对其进行密码保护(基本身份验证等)。