我使用.htaccess将每个URI重定向到单个PHP文件,该文件通过基于请求的URI调用具有不同输入的不同函数来显示正确的页面。我发现自己两次检查用户输入。一旦进入处理PHP文件,在调用显示函数之前首先检查一切是否正常,然后再在显示函数内再次检查,以确保没有人通过使用错误的参数(例如使用其他人的用户名)调用该函数来利用该函数。这意味着,我需要两倍的mysql查询等来检查有效输入。
我不能只是检查一个函数,因为根据这些检查,处理PHP文件会调用不同的函数。所以我必须至少在那里进行检查。但是我想的越多,我就越想知道,如果有必要在一个函数内再次检查。我开始这是因为我担心有人可能会通过不正确的输入调用我的一个函数,但我想如果有人可以调用我的一个PHP函数并传递错误的参数,那我已经非常搞砸了吗?因为据我所知,这意味着这个人已经有权访问我的服务器,至少是通过shell或类似的东西。
我还应该补充一点,我从来没有通过这个线程中讨论过的变量来调用函数:Call PHP function from URL
是否存在安全风险,如果您在函数调用之前已经检查过它,那么不检查传递给该函数中函数的参数吗?
答案 0 :(得分:0)
良好的经验法则 - 假装每个人都出去打你的应用程序! (是的,拿出你的锡箔帽!)。良好的做法是清理数据,例如将数据放入数据库,您仍然应该清理它从数据库中返回。
除非您的某个功能提供参数,并且无法通过准备功能访问(可能不安全)功能,否则我建议清除所有数据
HTHs - 谢谢, // P
答案 1 :(得分:0)