所以有一段时间我一直在尝试使用不同的AJAX方法将数据发送到服务器,该服务器将被处理并存储在MySQL数据库中.
AJAX请求命中的页面api.php使用PHP的PDO预处理语句来保存数据,因此MySQL注入并不是真正的问题,需要加密的密码或数据也是由api.php我所要求的处理的这里.我的问题更多地涉及如何确保数据在从客户端传输到服务器时是安全的.
我目前有(对于我在下面列出的登录示例):
login.php,并api.php在这个例子中).api.php访问功能时的速率限制.api.php.api.php(与问题无关).最后,我的问题是:
我知道每个人都有不同的方法来处理他们的网站数据和传输数据.我也明白,无论你做什么,你都永远不会受到100%的保护,因为你的系统可能存在一些你无法解释的漏洞和方法.我正在寻找有关安全发送数据的一般方法的反馈/改进,而不是批评下面的具体代码,因为它只是一个例子.但欢迎任何建设性的答案.感谢您抽出时间阅读/回答.
function loginUser() {
var process = "loginUser";
var data = $("form").serializeArray();
data[1].value = SHA512(data[1].value); // sha then encrypt on api.php page
data = JSON.stringify(data);
$("#loginButton").html('<i class="fa fa-spinner fa-pulse fa-lg fa-fw"></i> Login');
$.ajax({
type: "POST",
url: "api.php",
data: {"process": process, "data": data},
success: function(data) {
if (data.response.state == "success") …Run Code Online (Sandbox Code Playgroud) 我注意到你可以在PhpStorm的任何文件上固定一个标签,它有什么作用?看来我无论如何都可以关闭标签.
尝试将我的代码提交到 GitHub,之前从未遇到过问题,并且我已经完成了所有快速修复,但到目前为止还没有成功。错误:
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 16 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 2.19 MiB | 33.00 MiB/s, done.
Total 6 (delta 3), reused 0 (delta 0)
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)
fatal: the remote end hung up unexpectedly
fatal: the remote end hung up unexpectedly
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
我已经查看了这些问题:
我已经用 更新了我的缓冲区git …
我正在尝试在我的gatsby-node.js文件中构建一个支持可选值的类型。我认为这已经完成了[String!]!。
gatsby-node.js如何加载我在内部创建的新类型home.js?
gatsby-node.js:
const path = require('path');
exports.createSchemaCustomization = ({ actions }) => {
const { createTypes } = actions;
const typeDefs = `
type markdownRemark implements Node {
frontmatter: Features
}
type Features {
title: [String!]!
description: [String!]!
}
`;
createTypes(typeDefs);
};
Run Code Online (Sandbox Code Playgroud)
页面/home/home.js:
export const query = graphql`
query HomeQuery($path: String!) {
markdownRemark(frontmatter: { path: { eq: $path } }) {
html
frontmatter {
features {
title
description
}
}
}
} …Run Code Online (Sandbox Code Playgroud) 我已经看过这个问题,但不幸的是没有答案。
我正在使用 PhpStorm 并且正在构建一个加载了 Composer 项目的项目。我试图让 PhpStorm 在我按 ctrl+单击它们时识别我的类/函数,特别是对于通过 Composer 安装的项目。
我试过更改Source Foldersin Settings/Directories但我仍然无法让它工作。
我正在使用
require __DIR__ . '/vendor/autoload.php';加载我的作曲家依赖项。
我需要做什么才能让 PhpStorm 从通过 Composer 加载的文件中识别我的声明?
为了支持我的问题,这里有一些图片:
我的 test.php 文件:(注意它如何无法识别我的类):
project/test.php

通过 Composer 添加并使用自动加载器安装的项目:
project/vendor/braintree/braintree_php/lib/Braintree/Subscription.php

我正在尝试创建一个首先检查用户密码的例程,如果它是正确的,它将从不同的表返回一些值或更改一行中的某些值.
如果没有在PHP中处理两个查询,这是否可行?首先调用密码,检查其是否正确,然后允许用户更改名称.
这是一个使用电子邮件和密码获取用户行的示例.
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_user_info`(
IN in_Email VARCHAR(45),
IN in_Pass VARCHAR(45)
)
BEGIN
SELECT * FROM User WHERE Email = in_Email AND Pass = in_Pass;
END
Run Code Online (Sandbox Code Playgroud)
这就是我到目前为止所得到的:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `change_pass`(
in_Email VARCHAR(45),
in_PassOld VARCHAR(45),
in_PassNew VARCHAR(45)
)
BEGIN
SET @PassOld = (SELECT Pass From User WHERE Email = in_Email);
IF(@PassOld = in_PassOld) THEN
UPDATE User SET Pass = in_PassNew WHERE Email = in_Email;
END IF;
ENDND IF;
END
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
我一直在尝试多种方法来访问使用基本身份验证的API.问题是Angular 2无法输入用户名和密码.
如果您导航到基本的auth网站,它会要求您输入用户名和密码,然后在大多数浏览器上单击Log In或Cancel.如果你点击这个网站上的取消,它将返回一个字符串说明User pressed Cancel,而这正是我通过Angular的HTTP请求做到的.
在这个阶段,Authorization标头中的编码用户名和密码是否正确无关紧要,我只需要能够发送用户名和密码并让它尝试登录.
有什么建议?
request() {
let headers = new Headers();
headers.append('Authorization', "Basic dWRpZDM6cGFzc3dvcmQ=");
this.http.get('http://localhost:8888/api/', {
headers: headers
})
.subscribe(
data => this.example = data.text(),
err => this.logError(err.text()),
() => console.log('Request Complete')
);
console.log(this.example);
}
Run Code Online (Sandbox Code Playgroud)