2015-08-31 33 views
0

我正在创建一个网站,我尝试尊重模型,视图,控制器体系结构。 在HTML视图部分有时候我打电话PHP函数,如表格波纹管:把html函数放在html表单中可以安全吗?

<html> 
    <form role="form" action="#" method="POST"> 
    <div class="col-sm-6"> 
    <?php $workinghours->isCheckedWH($db, 'workinghours', $id, 'day', 'open', 'closed', 'check_list[]'); ?> 
    </div> 


<div class="row"> 
    <div class="col-sm-offset-1 col-sm-8"> 
    <br> 
    <button type="submit" class="btn btn-default" name="modify_wh" value="modify">Modify</button> 
    </form> 
    </html> 

是否有这样做的安全性方面的风险?有人可以修改函数中的参数来使事情崩溃。如果是的话,最好的解决方案是防止它呢?

非常感谢。

+1

这很好。不会有任何安全问题,除非你做的事情就像做查询而不逃避输入或类似的事情。 – Andrew

+0

PHP在服务器端执行不会有问题。没有人甚至可以查看PHP。 @andrew是正确的,除非你在没有安全度量的情况下获取quires而不是100%安全。例如 – Farhan

回答

0

用户不能“看到”或崩溃你的功能,如服务器响应竞争HTML(或其他格式:XML,TEXT,...)。

用户可能会崩溃你的代码,例如,如果您使用的要求未经过滤的数据:

$workinghours->isCheckedWH($db, 'workinghours', $_GET['id'], 'day', 'open', 'closed', 'check_list[]'); 
+0

,例如,没有人可以将html修改为:$ workinghours-> isCheckedWH($ db,'workinghours','xxx','open','closed','check_list []');数据库中存在xxx wouldent,从而导致崩溃?或者可以添加一个php函数能够理解的参数?我很抱歉,如果答案已经回答了这个问题,但我对这一切都很陌生! – michltm

+0

@michltm F.e.参数** xxx **可以是一些查询或括号,并且如果在您的函数isCheckedWH中使用它,而没有过滤或检查,它可能会“破坏”您的逻辑(SQL注入或XSS,或其他可能) –

+0

好的谢谢,我现在明白了! – michltm

0

你的PHP代码将永远不会到达客户端,因为它解释在服务器上。以这种方式显示数据在安全性方面并不成问题,但由于可能的代码注入(例如​​),您在接受用户输入时应该小心。

您应该经常清理和验证用户输入。已经有a post, that describes this in a bit more detail

+0

其中一个不会用'htmlspecialchars()'清理输入。您在输出中呈现html和js代码毫无害处,但您不会对输入做任何事情。 –

+0

@CharlotteDunois:正确,但要小心输出给js。 'htmlspecialchars'不适合这个。这里你需要'\ x62'格式(十六进制实体编码)。 – SilverlightFox

相关问题