V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
solopython
V2EX  ›  PHP

大神们 PHP 页面访问怎么加简单密码验证

  •  
  •   solopython · 2019-12-27 10:08:49 +08:00 · 4579 次点击
    这是一个创建于 1796 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比方说我创建了一个简单的 CRUD 数据库应用程序,访问权限上 C 页面不限制,RUD 页面需要加个简单的密码验证,怎么实现?

    9 条回复    2020-01-01 09:29:13 +08:00
    dreamerlv3ex
        1
    dreamerlv3ex  
       2019-12-27 10:11:51 +08:00
    挺简单的
    manami
        2
    manami  
       2019-12-27 10:15:59 +08:00
    没用框架的话自己写,在请求 RUD 页面之前增加密码验证。使用框架的话很多都有对应的权限管理,比如 laravel 的 laravel-permission。
    hakono
        3
    hakono  
       2019-12-27 10:20:16 +08:00 via Android
    如果你的网页是 http,最简单粗暴的就是 basic auth
    nginx 在代理部分根据不同的 path 设定下就行

    但是 basic auth 毕竟每个请求都带上了明文的帐号密码,非 http 真的就别试了,https 用 basic auth 感觉也不太安全
    hakono
        4
    hakono  
       2019-12-27 10:20:49 +08:00 via Android
    楼上修正

    如果你的网页是 https,最简单粗暴的就是 basic auth
    solopython
        5
    solopython  
    OP
       2019-12-27 10:24:07 +08:00
    @dreamerlv3ex @hakono @manami https://b62a3574.ngrok.io 这个是我的 CRUD 数据库应用程序
    CallMeReznov
        6
    CallMeReznov  
       2019-12-27 10:24:48 +08:00 via Android
    ngx_http_auth 了解一下
    RickyC
        7
    RickyC  
       2019-12-27 17:39:57 +08:00
    需求总结:
    1. 增 记录, 不用输入密码
    2. 删改查 记录, 要输入密码


    解决方法 (MVC) :
    删除接口 del()
    保存接口 save()
    列表页面 index()
    详情页面 detail()

    1. 在界面方面, 进入 del()和 save()方法前,都要提交密码给这 2 个接口
    2. 而在 save()接口和 del()接口中, 也要检查一下, 通过验证后, 再进行更新和保存的实操
    3. 在进入 index()页面和 detail()页面前, 要增加一个页面, 用于输入密码.
    4. 在 index()方法和 detail()方法中, 设置检查密码是否正确. 如果之前是把密码验证情况保存在 session 中, 也可以在 index()和 detail()中先检查 session, 再进行显示内容的实操


    题外话:
    1. 增加不用密码验证, 查看还要密码验证?
    2. 那么自己增加的东西自己不能看?
    solopython
        8
    solopython  
    OP
       2019-12-31 09:16:32 +08:00
    @RickyC 给了查看权限,那么自己除了查看自己添加的,还能查看别人添加的,这个怎么避免?这是我的应用 https://0c8da2ff.ngrok.io
    RickyC
        9
    RickyC  
       2020-01-01 09:29:13 +08:00
    @solopython 被查看的记录应该有一个 uid(添加者 id)吧? 显示列表的时候只显示 uid=本人的不就可以了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2800 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:23 · PVG 08:23 · LAX 16:23 · JFK 19:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.