我实际上正在为我的公司开发一个单页应用程序,它涉及不同用户角色的不同视图,以防止没有足够权限的人访问他们不应该看到的数据,或者执行他们无权执行的功能.
我在后端使用PHP和REST API,所以我觉得我在那里相当安全,但我对客户端安全性一无所知.
我正在考虑在我的main.js中以这种方式存储具有当前用户角色的App变量:
require(['jquery',
'underscore',
'backbone',
'marionette',
'app',
'routers/adminRouter',
'routers/userRouter',
], function($, _, Backbone, Marionette, App, AdminRouter, UserRouter){
App.vent.on("routing:started", function(){
Backbone.history.start();
});
App.addInitializer(function(){
if(userRole==="admin"){
App.Router = new AdminRouter;
} else {
App.Router = new UserRouter;
}
App.vent.trigger("routing:started");
});
App.addRegions({
content: "#main",
page: "#page",
dialogs: "#dialogs"
});
App.start();
App.vars = {};
App.vars.userRole = userRole;
Run Code Online (Sandbox Code Playgroud)
App.js只是:
define([
'underscore',
'backbone',
'marionette'
], function(_, Backbone){
var App = new Backbone.Marionette.Application();
return App;
});
Run Code Online (Sandbox Code Playgroud)
变量userRole
只是一个全局变量,我在index.php页面上从我的服务器引导.这安全多少钱?有一种方法可以改变userRole
页面加载的价值吗?或者App.vars.userRole
在应用程序运行时进行更改?我无法App
从控制台访问变量,但正如我所说,我对客户端编程非常新,我必须知道我是否可以依赖该变量的值.处理这种情况的最佳方法是什么?先感谢您.
我正在测试此示例中的 AES加密函数.我发现如果我IV
改为另一个随机数据,只有一部分文本将无法访问,另一部分将正确解密.
这是我的代码:
public static string encrypt(string original, string key, string iv)
{
string enc;
// Create a new instance of the RijndaelManaged
// class. This generates a new key and initialization
// vector (IV).
// Encrypt the string to an array of bytes.
byte[] encrypted =EncryptStringToBytes_Aes(original, Convert.FromBase64String(key), Convert.FromBase64String(iv));
enc = Convert.ToBase64String(encrypted);
return enc;
}
public static string decrypt(string encrypted, string key, string iv)
{
string decrypted;
decrypted = DecryptStringFromBytes_Aes(Convert.FromBase64String(encrypted), Convert.FromBase64String(key), Convert.FromBase64String(iv));
return decrypted;
}
Run Code Online (Sandbox Code Playgroud)
我最近一直在研究HTTPS,以及它的安全性.
我去了一个https网站,它有一个有效的证书,并输入了我的用户名和密码.使用Fiddler,我解密了单击提交按钮后出现的请求,并且在包含键值对的字符串中有纯文本的用户名和密码(这不是查询字符串,而是post值).
任何人都可以告诉我为什么说HTTPS是安全的,因为我很容易使用外部应用程序获取用户名和密码?我的意思是它几乎是即时解密,当然黑客可以使用一个应用程序找出你正在制作的请求并解密它们,不是吗?
我编写了以下函数来计算Java中的Md5校验和.
class Utils {
public static String md5Hash(String input) {
String result = "";
try {
System.out.println("Input=" + input);
final MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(input.getBytes());
result = md.digest().toString();
} catch (Exception ee) {
System.err.println("Error computing MD5 Hash");
}
return result;
}
};
Run Code Online (Sandbox Code Playgroud)
Utils.md5Hash("abcde")
多次调用会产生不同的结果.我的理解是md5为字符串返回一个确定性和唯一的校验和.那是错的吗?另外请告诉我实施中的错误.谢谢
我听说为了安全问题,建议在数据库中加密密码字段.
如果我的网站只有我可以访问数据库.根据我们的网站政策,我对查看其他密码没有任何问题.
这是否也适用于我的网站或者还有一些其他安全原因可以告诉我.
我们有一个任务,设计一个可以下载任何网页源的类.但是,当我尝试测试我的代码并获取页面时http://anidb.net/perl-bin/animedb.pl?show=main
- 没有任何工作.
像这样的标准代码失败:
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
URL link = new URL("http://www.anidb.net/");
BufferedReader in = new BufferedReader(
new InputStreamReader(link.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:
Šwq>²"¦§5´_ï__ÇUº=ôÙö?kŠ}~“bd`?l“Ïçz¢Çêõ>_"?j׉R“y}K¸\Ìc_DLÙªÏ_
–óMm_¼_0”•ö°ËC_aí½sî¤ìÁS ‚>dC0ìs_–y¹ñ±ÏÝÜAø%È_äÖá__æ©A@,4x„ж_ëɃ?
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一切:cookie,头文件,但似乎没有任何工作.如果你有一些暗示,我会很感激.
如果在散列密码之前使用salt,它将使散列更安全.这是有道理的,因为彩虹表攻击变得更加困难(不可能?).
如果你使用多种盐怎么办?例如 - 您检查日期是星期一,还是月份,小时等(或某种组合).然后你有一个存储字段的数据库:(userid,hash1,hash2,hash3 ......).
这会使信息更加(或更少)安全吗?
例:
1)用户注册密码为"PASS".2)系统(本例中为php)存储每天的值(md5($ password.$ this_day))(7个密码).到表密码,列hash_monday,hash_tuesday等.3)用户登录,脚本检查密码'hash _'.$ this_day匹配输入的内容.
我正在创建一个基于画布的游戏,它有一个重要的计时元素.完成游戏后,用户的完成时间将发送到服务器上的PHP/MySQL,以便与其他玩家进行比较.
服务器端计时(即提交请求时间的开始请求时间)似乎可能会导致加载时间影响用户的实际时间,因此在这种情况下效率低下.
我遇到的问题是确定一种方法来确保发送的时间是合法的.如何阻止某人使用他们的控制台并以提交虚假时间的方式编辑客户端代码?
任何帮助将不胜感激.
我有一个Cakephp 2+站点需要某些操作来要求SSL连接(即登录,密码重置等),但我不要求整个站点是安全的.在实现这一点时,我发现在SSL和非SSL页面之间移动时没有保存Session.我在堆栈/sf/answers/844766961/上发现了这个问题解决了我的问题,但我想知道成本是多少.
上述问题的答案需要在lib/Cake/Model/Datasource /中注释掉一行,如下所示:
if (!isset($sessionConfig['ini']['session.cookie_secure']) && env('HTTPS')){
// $sessionConfig['ini']['session.cookie_secure'] = 1; // <-- Commented Out
}
Run Code Online (Sandbox Code Playgroud)
这样做有什么安全后果吗?另外,有没有办法在不影响蛋糕核心文件的情况下执行此操作,因为这通常不受欢迎?
提前致谢.
看看Joomla的代码我看到在索引的第一行,它定义了安装的基本路径
dirname(__FILE__)
Run Code Online (Sandbox Code Playgroud)
这是一个网站可能存在风险的字体,我的意思是如果一个不受控制的错误消息显示Joomla目录的内部路径,因为例如一个失败的include,它可以用来对网站进行某种攻击?如果是,使用此功能是否方便?欢迎任何想法.
谢谢
security ×10
hash ×2
java ×2
javascript ×2
passwords ×2
php ×2
aes ×1
automation ×1
backbone.js ×1
c# ×1
cakephp ×1
cakephp-2.0 ×1
cryptography ×1
dirname ×1
download ×1
encryption ×1
https ×1
md5 ×1
md5sum ×1
requirejs ×1
salt ×1
ssl ×1
webpage ×1