在散列它们并将它们存储在我的数据库中之前,我应该如何逃避或清除用户提供的密码?
当PHP开发人员考虑出于安全目的而考虑哈希用户的密码时,他们往往会像对待任何其他用户提供的数据一样考虑这些密码.这个主题经常出现在与密码存储相关的PHP问题中; 开发人员经常希望使用诸如escape_string()
(在各种迭代中)等功能清理密码htmlspecialchars()
,addslashes()
然后再对其进行散列并将其存储在数据库中.
如果我有一个data.sql,如何将数据库导入我的mysql docker容器?我如何导入数据库数据.在码头世界中,这增加了一层复杂性.请问一些方法.
在这里我的docker-compose.yml:
nginx:
build: ./nginx/
container_name: nginx-container
ports:
- 80:80
links:
- php
volumes_from:
- app-data
php:
build: ./php/
container_name: php-container
expose:
- 9000
links:
- mysql
volumes_from:
- app-data
app-data:
image: php:7.0-fpm
container_name: app-data-container
volumes:
- ./www/html/:/var/www/html/
command: "true"
mysql:
image: mysql:latest
container_name: mysql-container
ports:
- 3306:3306
volumes_from:
- mysql-data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: name_db
MYSQL_USER: user
MYSQL_PASSWORD: password
mysql-data:
image: mysql:latest
container_name: mysql-data-container
volumes:
- /var/lib/mysql
command: "true"
Run Code Online (Sandbox Code Playgroud) 首先让我说我不是服务器管理员,而且还有很多我不知道的事情.因此,我确信我在设置我的Docker容器时犯了一个错误,因为SSL不起作用.
该容器在Ubuntu 14.04上运行带有PHP 5.6的Apache 2.4,并链接到MySQL 5.6 Docker容器.
我从Docker开始使用这个基本设置 - 官方PHP Repo.以下是相关文件:
Dockefile
FROM php:5.6-apache
RUN apt-get update
RUN apt-get install -y net-tools
RUN docker-php-ext-install pdo pdo_mysql
RUN docker-php-ext-install sockets
RUN a2enmod rewrite
RUN a2enmod ssl
ADD 000-default.conf /etc/apache2/sites-enabled/
ADD default-ssl.conf /etc/apache2/sites-anabled/
ADD apache2.conf /etc/apache2/
ADD www-server/ www-server/
EXPOSE 443
Run Code Online (Sandbox Code Playgroud)
000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /www-server/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<Directory /home/www-server/>
# allow .htaccess overrides to work
AllowOverride All
DirectoryIndex login.html index.html index.php
</Directory>
<Directory /home/www-server/client> …
Run Code Online (Sandbox Code Playgroud) 我安装了一个symfony 3项目,但无法运行任何php bin/console命令.当我尝试时,我收到以下错误:
PHP致命错误:未捕获的Symfony\Component\Debug\Exception\ClassNotFoundException:尝试从全局命名空间加载类"DOMDocument".你忘记了"使用"声明吗?在project_folder/vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php中:52
知道如何解决这个问题吗?
我最近设置了一个EC2实例(在没有负载均衡器的VPC中),不可否认配置有点奇怪,但它是我们运行的Web应用程序所需要的.
Web服务器(在Haskell中)在端口4433上运行(标准端口是为Apache实例保留的),并且正在接收从另一个系统广播的UDP数据包.我有很多端口是开放的(仅在测试期间),如此处所示(来自安全组):
Custom TCP Rule 4433 tcp 0.0.0.0/0 ?
Custom TCP Rule 8080 tcp 0.0.0.0/0 ?
SSH 22 tcp 0.0.0.0/0 ?
HTTP 80 tcp 0.0.0.0/0 ?
HTTPS 443 tcp 0.0.0.0/0 ?
Custom UDP Rule 30090 udp 0.0.0.0/0 ?
Custom UDP Rule 30089 udp 0.0.0.0/0 ?
Run Code Online (Sandbox Code Playgroud)
TCP套接字的JavaScript请求在同一端口上设置套接字(使用分配给AWS公共IP的URL),这是请求返回错误的位置:
与'wss:// [URL]:4433/projects/socket'的WebSocket连接失败:WebSocket打开握手被取消.
将套接字绑定到0.0.0.0会导致相同的错误.
为了启动Haskell Web服务器,我必须引用AWS提供的内部 IP,因为它在引用弹性IP服务提供的公共 IP 时不会运行.想到这就是问题出现的地方我把套接字请求改成了这个......
wss://[internal ip]:4433/projects/socket
Run Code Online (Sandbox Code Playgroud)
这会改变错误:
与'wss:// [内部IP]:4433/projects/socket'的WebSocket连接失败:连接建立错误:net :: ERR_CONNECTION_REFUSED
这个错误对我来说很有意义,因为外部世界无法获得内部IP.
我在AWS上的websockets上阅读的所有内容都涉及ELB(Elastic Load Balancer),而我不需要其中的一个.我已经尝试了所有当前发布的答案中的所有内容(有些问题甚至没有得到答案),但无济于事.我还设置了亚马逊(近24小时前)的支持案例,该案例尚未收到回复.
导航到http://[URL]:4433/projects/socket
'WebSocket Available',其中URL是我们希望使用的URL以及AWS提供的公共DNS.
运行netstat -plunt
显示以下内容:
tcp 0 0 0.0.0.0:22 …
Run Code Online (Sandbox Code Playgroud) 我尝试了此答案中的解决方案,但对我不起作用。我收到错误:
提供的执行角色无权调用 EC2 上的 CreateNetworkInterface(服务:AWSLambdaInternal;状态代码:400;错误代码:InvalidParameterValueException;请求 ID:4c8d047c-2710-4334-86cd-51b7467c6f08)
这是与错误相关的 CloudFormation:
EventLambdaFunction:
Type: AWS::Lambda::Function
Properties:
FunctionName: !Sub ${DeveloperPrefix}event-lambda-${Environment}-${DeployPhase}
Handler: EventHandler
Runtime: java8
Code:
S3Bucket: !Ref SharedBucketName
S3Key: !Sub ${WorkspacePrefix}/event-subscriber-${AppVersion}.jar
S3ObjectVersion: !Ref EventLambdaS3Version
Role: !GetAtt EventLambdaRole.Arn
Environment:
Variables:
retry_event_table_name: !Sub "${DeveloperPrefix}${AppName}-${RetryEventTableName}-${Environment}-${DeployPhase}"
test_enabled: true # TODO: Remove once endpoint provided.
VpcConfig:
SecurityGroupIds:
- !Ref LambdaSecurityGroup
SubnetIds:
- Fn::ImportValue: !Sub ${VPCStackName}-SubnetPrivateL
- Fn::ImportValue: !Sub ${VPCStackName}-SubnetPrivateR
Timeout: 28
MemorySize: 256
EventLambdaRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub ${DeveloperPrefix}${AppName}-${Environment}-${DeployPhase}-EventLambdaRole
AssumeRolePolicyDocument:
Statement:
- Effect: Allow
Principal:
Service: …
Run Code Online (Sandbox Code Playgroud) amazon-ec2 amazon-web-services aws-cloudformation aws-lambda
我有一个ec2图像,并在尝试创建一个新的laravel项目时收到以下错误.
[ErrorException] mkdir():权限被拒绝
这是命令:
composer create-project laravel/laravel mydir
Run Code Online (Sandbox Code Playgroud)
我可以使用ec2-user用户名写入该文件夹,但是我是否需要添加composer写入的权限?
未捕获错误:在C:\ xampp\htdocs\phoenixproject\register.php中调用未定义函数mysql_connect():9堆栈跟踪:#9 {main}在第9行的C:\ xampp\htdocs\phoenixproject\register.php中抛出
怎么解决这个?
我正在尝试将我的应用程序部署到Elastic Beanstalk(运行docker),但在部署期间它总是失败,如下所示:
Activity execution failed, because: cat: /var/app/current/Dockerrun.aws.json: No such file or directory cat: /var/app/current/Dockerrun.aws.json: No such file or directory 2ba4cc7f9cb0a66db0ab1be8736ba96bffbb1c96a219cf5e888f99a964ae4f2a
Run Code Online (Sandbox Code Playgroud)
据我所知,如果Dockerfile存在,则不需要Dockerrun.aws.josn文件,我也没有看到任何理由我们应该拥有它.
我的Dockerfile是这样的:
FROM ubuntu:16.04
# create source directory
RUN rm -rf /var/www
RUN mkdir /var/www
# update and upgrade ubuntu
RUN apt-get update && apt-get upgrade -y
# install nginx
RUN apt-get install -y nginx
# install php 7
RUN apt-get install -y php7.0 php7.0-fpm php7.0-xml php7.0-curl
# install php mysql
RUN apt-get install -y php7.0-mysql
# install php …
Run Code Online (Sandbox Code Playgroud) php ×4
amazon-ec2 ×3
docker ×3
composer-php ×2
mysql ×2
apache ×1
aws-lambda ×1
connect ×1
hash ×1
https ×1
javascript ×1
mediawiki ×1
openssl ×1
pdo ×1
server ×1
sql ×1
ssl ×1
symfony ×1
websocket ×1
wikipedia ×1