草庐IT

server-side-validation

全部标签

php - PHP文件上传 : Validating that a file is gpx

我目前正在开发一个用户可以上传图像和GPX文件的项目。验证图像没有问题,但我只是找不到一种安全的方法来确保gpx文件不是恶意文件。非常感谢任何提示!提前致谢!编辑:任何人都可以指出为什么这段代码不起作用吗?不工作是指它不会拒绝PDF文件。$xml=newXMLReader();if(!$xml->xml($_FILES["gps"]["tmp_name"],NULL,LIBXML_DTDVALID)){echo'alert("Notvalid!");';exit();} 最佳答案 $xmlcontents=XMLReader::op

php - Symfony 2 中的 DDD - 如何与 Validator 服务交互?

前段时间我开始玩DDD。现在,我所有的类(class)都是POPO。几乎所有内容都已完成,但我想在持久化之前验证我的实体。我已经知道在哪里放置验证(命令/用例对象),但理想情况下我想在应用程序/基础设施层使用验证器服务。对我来说,验证应该是领域层的一部分,但如果我把它放在那里,我会有很多重复。你遇到过这样的问题吗?有什么合理的解决办法吗?谢谢大家! 最佳答案 不要混合验证的类型,我知道这会混淆并且不容易分离概念并以正确的方式进行,但不要放弃。业务验证应该属于您的域并且不使用任何外部组件/框架来验证(因为您的域应该是最干净和自然的),

php - 在 PHP 中回显 $_SERVER ['DOCUMENT_ROOT' ] 的结束部分或最后一个文件夹

我需要使用$_SERVER['DOCUMENT_ROOT'];扫描文件和文件夹以在我的导航菜单中显示。假设我的根目录位于/home/user/public_html/website/。这是我回显根目录的方式:echo$_SERVER['DOCUMENT_ROOT'];它将显示/home/user/public_html/website/下面是我如何回显根目录中的文件夹:echo$_SERVER['DOCUMENT_ROOT'].'about/';它将显示/home/user/public_html/website/about/问题:我如何去除它一直显示到根文件夹和/或子文件夹的所有内容

php - $_SERVER ['SERVER_PROTOCOL' ] 可以注入(inject)吗?

我正在使用Apache+mod_fastcgi运行一个PHP网站。Apache错误日志中有错误:malformedheaderfromscript'ajax.php':Badheader:/;ls-laHTTP/1.0400BadRequ这是ajax.php中唯一发送header的代码:if(!isset($_POST['action'])){header($_SERVER['SERVER_PROTOCOL'].'400BadRequest');exit;}那么/;ls-la片段是从哪里来的呢?SERVER_PROTOCOL可以以任何方式注入(inject)吗?

php - 通过 Windows 身份验证登录时,我应该信任 php 变量 $_SERVER[AUTH_USER] 吗? IIS Intranet 托管应用程序

我已经托管(在IIS7.5上)基本的php网站,它只返回$SERVER变量内容。我注意到有AUTH*数组字段:["AUTH_USER"]=>string(18)"MYDOMAIN\my_username"["AUTH_PASSWORD"]=>string(0)""["AUTH_TYPE"]=>string(9)"Negotiate"//....somemorevariables["HTTP_AUTHORIZATION"]=>string(174)"Negotiate(token_here)"为什么AUTH_PASSWORD为空?另外,我应该相信这个变量吗?我可以安全地假设用户“my_u

php - $_SERVER ['SERVER_NAME' 的字符串长度不正确]

所以我试图检查Apache服务器名称是否包含某个字符串,并注意到非常奇怪的行为(例如,即使字符串看起来完全匹配,if语句中也没有匹配项)。使用var_dump()我查看了包含服务器名称的变量,令我惊讶的是我看到了这个:string(11)"test.local:5757"如果不计算数字,字符串只有11个字符。如果我使用'test.local:5757'而不是$_SERVER['SERVER_NAME']声明变量,我得到正确的长度,15。我试过在末尾附加一个空字符串以“重置”字符串,我什至尝试在字符串上添加额外的字母,最终被计算在内,但5757仍然没有被计算在内。有没有人以前经历过这样的

php - Symfony/验证器 : Property validation in Callback

我正在尝试创建一个地址实体,其中包含根据给定国家/地区验证的邮政编码。要走的路显然是CallbackValidator。现在我有这段代码:useSLLH\IsoCodesValidator\Constraints\ZipCode;useSymfony\Component\Validator\Constraints\Callback;useSymfony\Component\Validator\Context\ExecutionContextInterface;classAddress{/***@Callback()*/publicfunctionvalidatePostalCode(E

php - 如何让 webpack-dev-server 与现有应用程序一起工作?

在我的设置中,我们在本地机器上开发,然后将我们的代码同步到一个vagrantbox。我通过同时运行webpack-w和一个rsync守护进程来实现这一点——webpack构建文件,然后rsync立即获取更改并上传它们。但是,这不适用于实时/热重载。所以我希望做的是在我的HTML中换掉这两行:用类似的东西:然后实时/热重新加载就会神奇地起作用。我无法在webpack-dev-server下运行我的整个应用程序,因为nginx仍然需要为PHP应用程序的其余部分提供服务,包括一些非webpackedAssets。现在上面两行HTML是由这个函数生成的:function($chunkName)

php - Oauth2-server-laravel 自定义消息响应

我正在使用Oauth-server-laravel身份验证。到目前为止我做了什么:当我将错误的access_token发布到我在laravel中创建的API时,它会给出以下响应,{"error":"access_denied","error_description":"Theresourceownerorauthorizationserverdeniedtherequest."}我已经使用oauth作为路由中的中间件,如下所示,Route::group(['namespace'=>'Modules\User\Http\Controllers','middleware'=>'oauth'

PHP - FILTER_VALIDATE_URL 找不到带下划线的子域

为什么PHP函数:FILTER_VALIDATE_URL认为子域包含下划线的URL是无效的?我如何确保此FILTER_VALIDATE_URL包含此类现有URL(可能是最快的执行方式)? 最佳答案 好的,我想出了这个解决方案,希望它能很好地工作.. 关于PHP-FILTER_VALIDATE_URL找不到带下划线的子域,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3953946