如何防止用户直接访问我的 html 页面
How to prevent a user from directly accessing my html page
我有一个登录页面,该页面向Python脚本发送请求以对用户进行身份验证。如果未经过身份验证,则会将您重定向到登录页面。如果是将您重定向到 HTML 表单。问题是您可以通过编写 URL 来访问 HTML 表单。我如何确保用户来自使用我的 Python 脚本的登录表单,而无需使用模块,因为我无法在我的服务器中安装任何东西。我希望它严格使用Python,我不能使用PHP。可能吗?我可以使用其他方法来完成任务吗?
很明显,你只想使用 Python,没有框架等......所以问题是你实际上是重定向到一个现有的 Web HTML 页面。不要这样做,而是用Python本身来提供HTML。
# pages.py
class DefaultPage(object):
def __init__(self):
self.html = '''
All Your HTML Here
'''
def self.display:
return self.html
显然,你使用一些东西来服务你的Python,我假设一些简单的东西,比如Google App Engine Launcher,在这种情况下,你可以编写类。即使您使用其他一些简单的WSGI,概念也保持不变。
# main.py
import webapp2
from pages import DefaultPage
class MainHandler(webapp2.RequestHandler):
def get(self):
page = DefaultPage()
self.response.write(page.display())
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
处理用户登录的最佳方法是使用令牌作为 cookie。
用户成功登录后生成一个令牌并将其发送给他们,将此令牌保存在您的"内存"数据库中(如果您使用的是 django 服务器之类的东西)- https://docs.djangoproject.com/en/1.9/intro/tutorial01/,它会为您完成。
每次用户访问您网站中的任何内部页面时,请检查已作为cookie标头发送的用户令牌,如果在数据库中找到,则将他定向到请求的页面,否则,将他定向到登录页面。
如果您提供有关服务器(服务器类型)的更多详细信息,我可以为您提供更多帮助
您刚刚要求的称为会话管理。这是OWASP指南:https://www.owasp.org/index.php/Session_Management
你可以使用像用python编写的Django这样的框架,它已经提供了这个安全层 https://docs.djangoproject.com/en/1.9/topics/http/sessions/。
您必须添加 CSRF 保护以禁止从不受信任的来源提交表单。深入了解什么是 CSRF 代币?它的重要性是什么,它是如何工作的? 问题要了解它是如何工作的,你也可以看看 CSRF 代币如何防止攻击。
你可以实现自己的csrf保护逻辑,也可以使用现有的csrf保护逻辑,如Django CSRF或Flask CSRF Protection等(这取决于你项目中使用的技术)。
确保检查 Python 中的 "referer" 标头,并验证该地址是否是您的登录页面。
- 无法将数据从firebase获取到我的html页面
- 我的HTML按钮没有在Javascript中运行
- 我的html有一些错误
- 为什么jquery悬停在jsfiddle中可以工作,而在我的html布局中却不能
- 为什么<p>没有插入到我的html中
- 如何在我的html网页中使用jquery自动完成
- <text区域>在我的html中包含event.keycode==13之后,wrap就不起作用了
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- 如何重定向到我的html网站youtube嵌入视频打开在youtube应用程序
- 为什么我的html页面没有在<ui视图>
- 在将javascript附加到我的html中时遇到问题
- 为什么我的HTML标签消失了
- 使用 JavaScript 在我的 html 页面中放大图像
- 如何在javascript中调用onclick事件?我没有'我不想在我的HTML页面中使用任何事件
- 我的HTML、CSS和Javascript应该放在一起还是分开
- 为什么我的HTML似乎无法访问我的javascript
- 如何使用 javascript 向我的 html 添加内容而不擦除整个页面
- 如何为我的 html 表单制作打印预览和打印按钮
- 无法将我的 html 文档连接到 jquery
- JavaScript函数不适用于我的HTML表单