草庐IT

php - 使用 str_replace 是否足以防止 SQL 注入(inject)攻击?

编辑如果您打算回答这个问题,请至少阅读它。不要简单地看标题,然后谷歌'sqlinjectionphp',并将结果粘贴为答案首先,我很清楚有很多资源可用于如何最好地防止SQL注入(inject),但我的问题具体是关于是否只需很少的努力就足够了。我签约的一个组织最近被告知,他们之前的承包商开发的合作伙伴(PHP)网站被发现存在重大安全问题(我个人最喜欢的是在URL中使用字符串“紧急”,您可以获得未经身份验证的信息访问站点中的任何页面...)我被要求审查PHP站点的安全性并突出显示任何主要问题。我从以前使用该站点的经验中知道,编码标准确实很糟糕(例如,跨页面重复的大量代码,差异约为5%,数百

php - str_replace 干扰

我正在尝试使用str_replace将两个字母的语言缩写转换为完整的单词。我遇到的问题是它们在回显时会相互影响。$lang=str_replace("en","English",$lang);$lang=str_replace("es","Spanish",$lang);$lang=str_replace("pt","Portuguese",$lang);$lang=str_replace("fr","French",$lang);$lang=str_replace("de","German",$lang);$lang=str_replace("it","Italian",$lang)

PHP filter_input 验证 INT

我有这段代码:$range=array('options'=>array('min_range'=>0,'max_range'=>10));if(!$number=filter_input(INPUT_POST,'number',FILTER_VALIDATE_INT,$range)){exit('Error');}“数字”输入将从0到10的选项发送。问题是如果number=0则返回“错误”。这有什么问题吗?谢谢 最佳答案 这是因为!0为真。为什么?通过添加!您正在进行bool检查,因此您的变量得到转换。并根据manual:When

php - str_replace() 不会用重音替换字符

我有一个非常长的html字符串,它由希腊语和英语文本组成,大部分单词都带有html标签。我过去曾成功地使用下面的函数从文本中删除希腊语重音符号,从而使大写字母变得漂亮。然而,在这段文本中,在某些字符之后,替换停止发生,文本返回时带有重音符号。我也尝试了一些我在网上找到的其他功能,但没有成功。有什么帮助吗?我使用的函数是:publicstaticfunctionstripAccents($str){$a=array('ά','έ','ή','ί','ύ','ό','ώ','ς','Ά','Έ','Ή','Ί','Ύ','Ό','Ώ');$b=array('α','ε','η','ι','

javascript - URL::action() 和 Javascript int 变量之间的连接

我需要在laravel中执行AJAX请求,url是URL::Action方法和Javascript整数变量之间的连接。View中的javascript函数是functiondetailMaintenanceVehicle(vehicleId,placa){varurl="{{URL::action('DetailMaintenanceController@getDetailMaintenance',["+vehicleId+"])}}";console.log(vehicleId);//Thisprintsintegervariables1,2,3..console.log(url);

PHP_VERSION_ID 是 int 但未定义。 (PHP-FPM 5.4.4)

这个问题在这里已经有了答案:HowcanIgetusefulerrormessagesinPHP?(41个回答)关闭7年前。标题解释了它,但这是我尝试做的:if(!defined(PHP_VERSION_ID)||PHP_VERSION_ID出于某种原因,这是正在发生的事情:var_dump(PHP_VERSION_ID);//returnsint(50404)var_dump(defined(PHP_VERSION_ID));//returnsbool(false)根据defined上的php.net页面,您可以这样做:关于为什么这不起作用的任何想法?我在DebianWheezy上运

php - 为什么要同时使用 str_replace() 和 preg_replace()?

我是在Perl之后才开始了解PHP的,所以当我第一次发现preg_*函数时,我基本上只是使用它们。后来我读到str_replace()在处理文字文本时速度更快。所以我的问题是,当搜索模式不使用特殊字符时,preg_replace()不能像str_replace()一样高效吗?也许只是分析模式以在正则表达式和纯文本算法之间做出选择? 最佳答案 理论上是的,你是对的。PHP团队可能会调整preg_replace来分析传入的模式,然后在没有看到任何元字符的情况下使用str_replace的代码。假设分析不是太繁重,这可能会产生更好的性能结

php - str_replace ('<' ) 可以保护我们免受用户注入(inject)代码的侵害吗?

好的,我有一些用户输入,我做了一个echostr_replace('我想知道,无论如何用户是否可以破坏此过滤器?最初我认为这个脚本非常安全,但在阅读了一些关于php、字符集和安全性的文章后我开始怀疑它的健壮性。 最佳答案 这取决于输入的最终位置。例如,如果在某个时候你最终得到了一个像这样构造的(糟糕的)模板......">alink然后有人可以通过简单地使用以下输入来注入(inject)代码:javascript:do_whatever()即使输出通常不会回显到href字段中,像这样..."href="http://www.goog

PHP - 为什么不能使用 ~PHP_INT_MAX 作为默认参数

我写了一个函数,其中我使用PHP_INT_MAX和~PHP_INT_MAX作为默认参数,但我最终得到了“~”的语法错误。声明是:publicstaticfunctionisNumberValid($number,$lowerbound=~PHP_INT_MAX,$upperbound=PHP_INT_MAX)我通过在声明中制作$lowerbownd=null然后在正文中设置它来修复它,现在它工作得很好:if(is_null($lowerbound)){$lowerbound=~PHP_INT_MAX;}我只是想知道这是为什么.. 最佳答案

PHP,从数组读取时str_replace出现问题

我是php的新手,我正在尝试编写一个脚本来读取CSV文件(file1.csv)并将文件中的单词与html文件(file2.html)中的单词进行比较,如果file2中有单词.html与file1.csv中的关键部分匹配它应该使用匹配的关键值更改file2.html内容..到目前为止我所做的是:$glossArray=array();$file_handle=fopen("file1.csv","r");while(!feof($file_handle)){$line_of_text=fgetcsv($file_handle,10000,';');$glossArray[$line_of