时间: 2021-07-31 作者:daque
编写安定的cgi剧本 尽管在什么功夫,一个步调与搜集存户端接洽的功夫,就有大概存户端会报复这个步调以赢得未受权的考察。纵然是无歹意地看看你的剧本也会你的体例的完备型形成伤害。出于这种办法,本节教程将教你编写安定的剧本以制止任何的报复。 开始要提防eval语句。perl和bourne shell谈话为用户供给了一个eval吩咐,它承诺你结构一个字符串而且有个解释器来实行这个字符串。这是一个不安定的心腹之患。咱们来查看一下以次的语句,它是用bource shell编写的:eval `echo $query_string | awk 'begin{rs="&"} {printf "qs_%s\n",$1}' ` 这条语句将查问字符串变换未一系列的可变的树立吩咐。然而悲惨的是,这个剧本不妨经过发送给它一个以逗点”;”发端的查问字符串来报复。看看这有如许的伤害! 其次,不要委派存户端做任何工作。一个品行好的存户端将会制止发送任何带有报复性的查问字符串给bourne shell,如许就会制止剧本错曲解释字符串而引导少许不安定的工作。然而,”防人之心不行无”,对于哪些品行卑劣的存户端大概就会运用少许特出的字符串来污染你的剧本以赢得未受权的考察。以是确定不要委派存户端做任何工作。 还要格外提防popen()和system()的运用。即使你运用任何来自存户端的数据结构一个吩咐行来挪用popen()大概system(),要坚信在任何字符之前加一个反斜杆,由于如许会在挪用因变量之前给bourne shell以特出的意旨。简直做法你不妨运用简略的c因变量来实行。 结果,为了安定起见,封闭效劳端附属类小部件(ssi)。即使很悲惨,你的效劳器扶助ssi,那么请确定要为你的剧本目次封闭它!这个ssi大概被存户端乱用,她们不妨偷看到她们发送的字符串径直输入的剧本。 本剧本不过详细本质地引见安定的办法,即使有领会对于安定和www的题目,你不妨拜见少许www安定罕见题目文本(faq)。